diff options
author | dcorbacho <dparracorbacho@piotal.io> | 2021-04-10 23:32:31 +0200 |
---|---|---|
committer | dcorbacho <dparracorbacho@piotal.io> | 2021-04-10 23:32:31 +0200 |
commit | 0804ec39f95c4db40764e896ac21211881f7583a (patch) | |
tree | 3de8350bf5cbe024c700576e0fafabe55144d532 | |
parent | 8d12256dd828ecb00171e2c142d1878ab93d3c10 (diff) | |
download | rabbitmq-server-git-stream-management.tar.gz |
Catch exception when remote node is up but rabbit app is stoppedstream-management
It returns a badarg that crashes the queues API
-rw-r--r-- | deps/rabbit/src/rabbit_stream_queue.erl | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/deps/rabbit/src/rabbit_stream_queue.erl b/deps/rabbit/src/rabbit_stream_queue.erl index c99268e6ba..d518714c24 100644 --- a/deps/rabbit/src/rabbit_stream_queue.erl +++ b/deps/rabbit/src/rabbit_stream_queue.erl @@ -515,14 +515,19 @@ i(_, _) -> ''. readers(QName) -> - Data = osiris_counters:overview(), - Readers = case maps:get({osiris_writer, QName}, Data, not_found) of - not_found -> - maps:get(readers, maps:get({osiris_replica, QName}, Data, #{}), 0); - Map -> - maps:get(readers, Map, 0) - end, - {node(), Readers}. + try + Data = osiris_counters:overview(), + Readers = case maps:get({osiris_writer, QName}, Data, not_found) of + not_found -> + maps:get(readers, maps:get({osiris_replica, QName}, Data, #{}), 0); + Map -> + maps:get(readers, Map, 0) + end, + {node(), Readers} + catch + _:_ -> + {node(), 0} + end. init(Q) when ?is_amqqueue(Q) -> Leader = amqqueue:get_pid(Q), |