summaryrefslogtreecommitdiff
path: root/src
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
commit39a38ef258f8ea8719b3b0cfb8a269505595e67f (patch)
tree7af986eb870350a1763a9598ff359c0301f3d463 /src
parentdc32d1fd4bdf67a3c4982e82545f0bd6ab56e299 (diff)
downloadrabbitmq-server-git-39a38ef258f8ea8719b3b0cfb8a269505595e67f.tar.gz
Leave the Erlang distributed system when resetting.
Diffstat (limited to 'src')
-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 c63c67f4ea..b340b6f06b 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() ++ "/*")),