diff options
| author | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-09-13 15:41:42 +0100 |
|---|---|---|
| committer | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-09-13 15:41:42 +0100 |
| commit | fc08a0cd40a85b109af5d515694590694ee63c39 (patch) | |
| tree | dbc81adc9c8d8b5da1c78d6a6b8fd3beccec2d14 | |
| parent | 63a9bb6a68d8c04520b077a08d9e7e26368ef51d (diff) | |
| download | rabbitmq-server-git-fc08a0cd40a85b109af5d515694590694ee63c39.tar.gz | |
get cluster nodes from mnesia when legacy/non existant status file
This is necessary because the upgrade process needs to remove the replicas
of the schemas.
| -rw-r--r-- | src/rabbit_node_monitor.erl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/rabbit_node_monitor.erl b/src/rabbit_node_monitor.erl index 397032a4d2..b2d7bb601b 100644 --- a/src/rabbit_node_monitor.erl +++ b/src/rabbit_node_monitor.erl @@ -102,11 +102,12 @@ prepare_cluster_status_files() -> {ok, [{AllNodes, DiscNodes0}]} -> {AllNodes, lists:member(node(), DiscNodes0)}; {ok, [AllNodes0]} when is_list(AllNodes0) -> - {AllNodes0, legacy_should_be_disc_node(AllNodes0)}; + {legacy_cluster_nodes(AllNodes0), + legacy_should_be_disc_node(AllNodes0)}; {ok, _} -> CorruptFiles(); non_existant -> - {[], true} + {legacy_cluster_nodes([]), true} end, ThisNode = [node()], @@ -291,5 +292,10 @@ is_already_monitored(Item) -> (_) -> false end, Monitors). +legacy_cluster_nodes(Nodes) -> + %% We get all the info that we can, including the nodes from mnesia, which + %% will be there if the node is a disc node (empty list otherwise) + lists:usort(Nodes ++ mnesia:system_info(db_nodes)). + legacy_should_be_disc_node(DiscNodes) -> DiscNodes == [] orelse lists:member(node(), DiscNodes). |
