summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@novemberain.com>2016-07-28 17:17:33 +0400
committerGitHub <noreply@github.com>2016-07-28 17:17:33 +0400
commitf8a9643af5973ec51569cc122d128c68f6910411 (patch)
treee7d5bcf25225a8cd1aa9b476d6bf9e4f87e850c9
parent0c316fc3b6c135236fb0a267b31595dc5762f9eb (diff)
parent5bcf3bafa558ec361002e87c89b3f0b6b3a14069 (diff)
downloadrabbitmq-server-git-f8a9643af5973ec51569cc122d128c68f6910411.tar.gz
Merge pull request #894 from lemenkov/toctou_in_cluster_status
Don't die in case of faulty node
-rw-r--r--src/rabbit_control_main.erl9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/rabbit_control_main.erl b/src/rabbit_control_main.erl
index d2f0e8bcb0..ea9d6a2030 100644
--- a/src/rabbit_control_main.erl
+++ b/src/rabbit_control_main.erl
@@ -953,6 +953,9 @@ nodes_in_cluster(Node) ->
unsafe_rpc(Node, rabbit_mnesia, cluster_nodes, [running]).
alarms_by_node(Name) ->
- Status = unsafe_rpc(Name, rabbit, status, []),
- {_, As} = lists:keyfind(alarms, 1, Status),
- {Name, As}.
+ case rpc_call(Name, rabbit, status, []) of
+ {badrpc,nodedown} -> {Name, [nodedown]};
+ Status ->
+ {_, As} = lists:keyfind(alarms, 1, Status),
+ {Name, As}
+ end.