summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-03-18 12:16:33 +0000
committerSimon MacMullen <simon@rabbitmq.com>2011-03-18 12:16:33 +0000
commit6aed5b3365bbc7249c6a72a3e674986bd396bb8f (patch)
treeb71e0b77a25021d99819454d5bacedccc32b0c10
parent3ae4322d27ee90b19d774418c43fd7e8a0b75ac4 (diff)
parentb13bd327e6d58bfe4fdeb8f8c14f666f493fbe54 (diff)
downloadrabbitmq-server-6aed5b3365bbc7249c6a72a3e674986bd396bb8f.tar.gz
Merge heads
-rw-r--r--src/rabbit.erl3
-rw-r--r--src/rabbit_mnesia.erl2
-rw-r--r--src/rabbit_upgrade.erl36
3 files changed, 20 insertions, 21 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index b1d88a52..1361d0f4 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -204,7 +204,6 @@ start() ->
end.
stop() ->
- ok = rabbit_mnesia:record_running_disc_nodes(),
ok = rabbit_misc:stop_applications(?APPS).
stop_and_halt() ->
@@ -234,6 +233,7 @@ rotate_logs(BinarySuffix) ->
start(normal, []) ->
case erts_version_check() of
ok ->
+ ok = rabbit_mnesia:delete_previously_running_disc_nodes(),
{ok, SupPid} = rabbit_sup:start_link(),
true = register(rabbit, self()),
@@ -246,6 +246,7 @@ start(normal, []) ->
end.
stop(_State) ->
+ ok = rabbit_mnesia:record_running_disc_nodes(),
terminated_ok = error_logger:delete_report_handler(rabbit_error_logger),
ok = rabbit_alarm:stop(),
ok = case rabbit_mnesia:is_clustered() of
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index 867da779..4d3267a2 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -378,7 +378,7 @@ delete_cluster_nodes_config() ->
end.
running_nodes_filename() ->
- dir() ++ "/nodes_running_at_shutdown".
+ filename:join(dir(), "nodes_running_at_shutdown").
record_running_disc_nodes() ->
FileName = running_nodes_filename(),
diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl
index 2c31e602..c061cd49 100644
--- a/src/rabbit_upgrade.erl
+++ b/src/rabbit_upgrade.erl
@@ -112,8 +112,7 @@ maybe_upgrade_mnesia() ->
primary -> primary_upgrade(Upgrades, AllNodes);
secondary -> secondary_upgrade(AllNodes)
end
- end,
- ok = rabbit_mnesia:delete_previously_running_disc_nodes().
+ end.
upgrade_mode(AllNodes) ->
case nodes_running(AllNodes) of
@@ -140,24 +139,23 @@ upgrade_mode(AllNodes) ->
[])
end;
[Another|_] ->
- ClusterVersion =
- case rpc:call(Another, rabbit_version, desired_for_scope,
- [mnesia]) of
- {badrpc, {'EXIT', {undef, _}}} -> unknown_old_version;
- {badrpc, Reason} -> {unknown, Reason};
- V -> V
- end,
MyVersion = rabbit_version:desired_for_scope(mnesia),
- case rabbit_version:'=~='(ClusterVersion, MyVersion) of
- true ->
- %% The other node(s) have upgraded already, I am not the
- %% upgrader
- secondary;
- false ->
- %% The other node(s) are running an unexpected version.
- die("Cluster upgrade needed but other nodes are "
- "running ~p~nand I want ~p",
- [ClusterVersion, MyVersion])
+ ErrFun = fun (ClusterVersion) ->
+ %% The other node(s) are running an
+ %% unexpected version.
+ die("Cluster upgrade needed but other nodes are "
+ "running ~p~nand I want ~p",
+ [ClusterVersion, MyVersion])
+ end,
+ case rpc:call(Another, rabbit_version, desired_for_scope,
+ [mnesia]) of
+ {badrpc, {'EXIT', {undef, _}}} -> ErrFun(unknown_old_version);
+ {badrpc, Reason} -> ErrFun({unknown, Reason});
+ CV -> case rabbit_version:'=~='(
+ MyVersion, CV) of
+ true -> secondary;
+ false -> ErrFun(CV)
+ end
end
end.