summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-08-22 14:23:35 +0100
committerSimon MacMullen <simon@rabbitmq.com>2011-08-22 14:23:35 +0100
commit38a2d007572eddce69ff237bf3649288042fa44b (patch)
tree7af986eb870350a1763a9598ff359c0301f3d463
parent04a22b6eba57696c4e5abd5048ee698682ae926e (diff)
downloadrabbitmq-server-38a2d007572eddce69ff237bf3649288042fa44b.tar.gz
Leave the Erlang distributed system when resetting.
-rw-r--r--src/rabbit_mnesia.erl10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index c63c67f4..b340b6f0 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -720,16 +720,16 @@ reset(Force) ->
false -> ok
end,
Node = node(),
+ Nodes = all_clustered_nodes() -- [Node],
case Force of
true -> ok;
false ->
ensure_mnesia_dir(),
start_mnesia(),
- {Nodes, RunningNodes} =
+ RunningNodes =
try
ok = init(),
- {all_clustered_nodes() -- [Node],
- running_clustered_nodes() -- [Node]}
+ running_clustered_nodes() -- [Node]
after
stop_mnesia()
end,
@@ -737,6 +737,10 @@ reset(Force) ->
rabbit_misc:ensure_ok(mnesia:delete_schema([Node]),
cannot_delete_schema)
end,
+ %% We need to make sure that we don't end up in a distributed
+ %% Erlang system with nodes while not being in an Mnesia cluster
+ %% with them. We don't handle that well.
+ [erlang:disconnect_node(N) || N <- Nodes],
ok = delete_cluster_nodes_config(),
%% remove persisted messages and any other garbage we find
ok = rabbit_misc:recursive_delete(filelib:wildcard(dir() ++ "/*")),