diff options
author | kjnilsson <knilsson@pivotal.io> | 2021-03-16 09:01:56 +0000 |
---|---|---|
committer | kjnilsson <knilsson@pivotal.io> | 2021-03-16 09:01:56 +0000 |
commit | eb91d50fd4632ceeb68ab14ef8886331c65d2b09 (patch) | |
tree | 961330570681dee57a5315f79bede3b338fe44fc | |
parent | e46216b5a8b28de40a3fed06662e208682a7a3c2 (diff) | |
download | rabbitmq-server-git-stream-coord-refactor.tar.gz |
stream coordinator fall back to consistent querystream-coord-refactor
-rw-r--r-- | deps/rabbit/src/rabbit_stream_coordinator.erl | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/deps/rabbit/src/rabbit_stream_coordinator.erl b/deps/rabbit/src/rabbit_stream_coordinator.erl index 24df463ab6..0db22327bf 100644 --- a/deps/rabbit/src/rabbit_stream_coordinator.erl +++ b/deps/rabbit/src/rabbit_stream_coordinator.erl @@ -183,6 +183,18 @@ local_pid(StreamId) when is_list(StreamId) -> members(StreamId) when is_list(StreamId) -> MFA = {?MODULE, query_members, [StreamId]}, case ra:local_query({?MODULE, node()}, MFA) of + {ok, {_, {ok, _} = Result}, _} -> + Result; + {ok, {_, {error, not_found} = Result}, _} -> + %% fall back to consistent query + case ra:consistent_query({?MODULE, node()}, MFA) of + {ok, Result, _} -> + Result; + {error, _} = Err -> + Err; + {timeout, _} -> + {error, timeout} + end; {ok, {_, Result}, _} -> Result; {error, _} = Err -> |