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 | 2f7f8b83f592d9b71b34cc1fc258d04e5f6563f2 (patch) | |
tree | dbc81adc9c8d8b5da1c78d6a6b8fd3beccec2d14 | |
parent | 4233031e8189bb4058502ab0cfa699e5fec05bb8 (diff) | |
download | rabbitmq-server-2f7f8b83f592d9b71b34cc1fc258d04e5f6563f2.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 397032a4..b2d7bb60 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). |