summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordcorbacho <dparracorbacho@piotal.io>2021-04-10 23:32:31 +0200
committerkjnilsson <knilsson@pivotal.io>2021-04-13 16:42:09 +0100
commit2f1f7c5288d6c4ba9dccafbd769ecad3981bf79a (patch)
tree62b5be6bb29069fdceee21bad01feadf6512c623
parent1c696a3b9e67dbcd96dd4c0c0911384c3373eb36 (diff)
downloadrabbitmq-server-git-2f1f7c5288d6c4ba9dccafbd769ecad3981bf79a.tar.gz
Catch exception when remote node is up but rabbit app is stopped
It returns a badarg that crashes the queues API
-rw-r--r--deps/rabbit/src/rabbit_stream_queue.erl21
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 288dc30432..05977c3a58 100644
--- a/deps/rabbit/src/rabbit_stream_queue.erl
+++ b/deps/rabbit/src/rabbit_stream_queue.erl
@@ -563,14 +563,19 @@ tracking_status(Vhost, QueueName) ->
end.
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),