summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkjnilsson <knilsson@pivotal.io>2021-03-16 09:01:56 +0000
committerkjnilsson <knilsson@pivotal.io>2021-03-16 09:01:56 +0000
commiteb91d50fd4632ceeb68ab14ef8886331c65d2b09 (patch)
tree961330570681dee57a5315f79bede3b338fe44fc
parente46216b5a8b28de40a3fed06662e208682a7a3c2 (diff)
downloadrabbitmq-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.erl12
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 ->