summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Cogoluègnes <acogoluegnes@gmail.com>2022-02-07 11:07:51 +0100
committerGitHub <noreply@github.com>2022-02-07 11:07:51 +0100
commita4d1337d6db821af4ae41e8a9b7166a94606b884 (patch)
tree13c40e19b4289e0fafd4dd8dd25fc75652c700a6
parent6df9a598acaad82149cc540fab06d1a1312567d0 (diff)
parent19a9fb8df77541311a2175c741af96b8acf0239d (diff)
downloadrabbitmq-server-git-3.10.0-beta.2.tar.gz
Merge pull request #4118 from rabbitmq/mergify/bp/v3.10.x/pr-4117v3.10.0-beta.3v3.10.0-beta.2
Handle stream coordinator error response for topology request (backport #4117)
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_manager.erl58
-rw-r--r--deps/rabbitmq_stream/src/rabbit_stream_reader.erl2
2 files changed, 29 insertions, 31 deletions
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_manager.erl b/deps/rabbitmq_stream/src/rabbit_stream_manager.erl
index b8f4fdc923..2bb65d581d 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_manager.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_manager.erl
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2021 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_manager).
@@ -361,35 +361,33 @@ handle_call({topology, VirtualHost, Stream}, _From, State) ->
true ->
QState = amqqueue:get_type_state(Q),
#{name := StreamName} = QState,
- StreamMembers =
- case rabbit_stream_coordinator:members(StreamName)
- of
- {ok, Members} ->
- maps:fold(fun (_Node, {undefined, _Role},
- Acc) ->
- Acc;
- (LeaderNode, {_Pid, writer},
- Acc) ->
- Acc#{leader_node =>
- LeaderNode};
- (ReplicaNode,
- {_Pid, replica}, Acc) ->
- #{replica_nodes :=
- ReplicaNodes} =
- Acc,
- Acc#{replica_nodes =>
- ReplicaNodes
- ++ [ReplicaNode]};
- (_Node, _, Acc) ->
- Acc
- end,
- #{leader_node => undefined,
- replica_nodes => []},
- Members);
- _ ->
- {error, stream_not_found}
- end,
- {ok, StreamMembers};
+ case rabbit_stream_coordinator:members(StreamName) of
+ {ok, Members} ->
+ {ok,
+ maps:fold(fun (_Node, {undefined, _Role},
+ Acc) ->
+ Acc;
+ (LeaderNode, {_Pid, writer},
+ Acc) ->
+ Acc#{leader_node =>
+ LeaderNode};
+ (ReplicaNode, {_Pid, replica},
+ Acc) ->
+ #{replica_nodes :=
+ ReplicaNodes} =
+ Acc,
+ Acc#{replica_nodes =>
+ ReplicaNodes
+ ++ [ReplicaNode]};
+ (_Node, _, Acc) ->
+ Acc
+ end,
+ #{leader_node => undefined,
+ replica_nodes => []},
+ Members)};
+ _ ->
+ {error, stream_not_available}
+ end;
_ ->
{error, stream_not_found}
end;
diff --git a/deps/rabbitmq_stream/src/rabbit_stream_reader.erl b/deps/rabbitmq_stream/src/rabbit_stream_reader.erl
index 30ae4f5a4f..831d342cb7 100644
--- a/deps/rabbitmq_stream/src/rabbit_stream_reader.erl
+++ b/deps/rabbitmq_stream/src/rabbit_stream_reader.erl
@@ -9,7 +9,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is Pivotal Software, Inc.
-%% Copyright (c) 2020-2021 VMware, Inc. or its affiliates. All rights reserved.
+%% Copyright (c) 2020-2022 VMware, Inc. or its affiliates. All rights reserved.
%%
-module(rabbit_stream_reader).