diff options
author | Arnaud Cogoluègnes <acogoluegnes@gmail.com> | 2022-02-07 11:07:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-07 11:07:51 +0100 |
commit | a4d1337d6db821af4ae41e8a9b7166a94606b884 (patch) | |
tree | 13c40e19b4289e0fafd4dd8dd25fc75652c700a6 | |
parent | 6df9a598acaad82149cc540fab06d1a1312567d0 (diff) | |
parent | 19a9fb8df77541311a2175c741af96b8acf0239d (diff) | |
download | rabbitmq-server-git-a4d1337d6db821af4ae41e8a9b7166a94606b884.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.erl | 58 | ||||
-rw-r--r-- | deps/rabbitmq_stream/src/rabbit_stream_reader.erl | 2 |
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). |