diff options
-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 -> |