summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2013-11-28 16:51:15 +0000
committerMatthew Sackman <matthew@rabbitmq.com>2013-11-28 16:51:15 +0000
commit2f507c70d7d5c45690b9209864e36b750f7bd569 (patch)
tree31b62dffc235c5ffe79539ac3a9eac44c9ca14a1
parent9f15b01d28c8109feb36302824c65490aa3045a6 (diff)
downloadrabbitmq-server-2f507c70d7d5c45690b9209864e36b750f7bd569.tar.gz
Introduce halt_on_upgrade_failure app env param and set it to true. Only throw an error instead of halting if it has been set to false.
-rw-r--r--ebin/rabbit_app.in1
-rw-r--r--src/rabbit_upgrade.erl9
2 files changed, 8 insertions, 2 deletions
diff --git a/ebin/rabbit_app.in b/ebin/rabbit_app.in
index a10bad45..f0fee96a 100644
--- a/ebin/rabbit_app.in
+++ b/ebin/rabbit_app.in
@@ -52,6 +52,7 @@
{nodelay, true},
{linger, {true, 0}},
{exit_on_close, false}]},
+ {halt_on_upgrade_failure, true},
{hipe_compile, false},
%% see bug 24513 for how this list was created
{hipe_modules,
diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl
index 1047b823..44a1fe0d 100644
--- a/src/rabbit_upgrade.erl
+++ b/src/rabbit_upgrade.erl
@@ -191,9 +191,14 @@ die(Msg, Args) ->
%% straight out into do_boot, generating an erl_crash.dump
%% and displaying any error message in a confusing way.
error_logger:error_msg(Msg, Args),
- io:format("~n~n****~n~n" ++ Msg ++ "~n~n****~n~n~n", Args),
+ Str = rabbit_misc:format(
+ "~n~n****~n~n" ++ Msg ++ "~n~n****~n~n~n", Args),
+ io:format(Str),
error_logger:logfile(close),
- halt(1).
+ case application:get_env(rabbit, halt_on_upgrade_failure) of
+ false -> throw({upgrade_error, Str});
+ _ -> halt(1) %% i.e. true or undefined
+ end.
primary_upgrade(Upgrades, Nodes) ->
Others = Nodes -- [node()],