diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_control_main.erl | 9 | ||||
| -rw-r--r-- | src/rabbit_mnesia.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_queue_location_validator.erl | 4 |
3 files changed, 10 insertions, 5 deletions
diff --git a/src/rabbit_control_main.erl b/src/rabbit_control_main.erl index c56e519fe5..0e377b7c3c 100644 --- a/src/rabbit_control_main.erl +++ b/src/rabbit_control_main.erl @@ -1003,6 +1003,9 @@ nodes_in_cluster(Node, Timeout) -> unsafe_rpc(Node, rabbit_mnesia, cluster_nodes, [running], Timeout). 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. diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index 88ea3a80f5..0c46193ca3 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -58,7 +58,7 @@ %% Main interface -spec init() -> 'ok'. -spec join_cluster(node(), node_type()) - -> 'ok' | {'ok', 'already_member'}. + -> ok | {ok, already_member} | {error, {inconsistent_cluster, string()}}. -spec reset() -> 'ok'. -spec force_reset() -> 'ok'. -spec update_cluster_nodes(node()) -> 'ok'. diff --git a/src/rabbit_queue_location_validator.erl b/src/rabbit_queue_location_validator.erl index 44394a962c..c5aad50e64 100644 --- a/src/rabbit_queue_location_validator.erl +++ b/src/rabbit_queue_location_validator.erl @@ -26,7 +26,9 @@ {mfa, {rabbit_registry, register, [policy_validator, <<"queue-master-locator">>, - ?MODULE]}}]}). + ?MODULE]}}, + {requires, rabbit_registry}, + {enables, recovery}]}). validate_policy(KeyList) -> case proplists:lookup(<<"queue-master-locator">> , KeyList) of |
