summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Fedotov <hairyhum@gmail.com>2018-03-16 10:36:22 +0000
committerMichael Klishin <michael@clojurewerkz.org>2018-03-16 17:14:13 +0300
commit4f3131053eb80d11787c4772e421507a653354cc (patch)
tree566244102174424bb08361ebc558bf78ad962bb8
parent5d88f5a4064d310333f2a1df6253a76dd2aaee04 (diff)
downloadrabbitmq-server-git-4f3131053eb80d11787c4772e421507a653354cc.tar.gz
Make is_booted function compatible with pre-3.7.4 remote nodes
(cherry picked from commit fc8abae47427eb9ae4347177cc23dd9d4e10ba35)
-rw-r--r--src/rabbit.erl27
1 files changed, 9 insertions, 18 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index a91f2f32b5..cde1d0ad07 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -27,7 +27,7 @@
-export([start/2, stop/1, prep_stop/1]).
-export([start_apps/1, start_apps/2, stop_apps/1]).
-export([log_locations/0, config_files/0, decrypt_config/2]). %% for testing and mgmt-agent
--export([is_booted/0, is_booted/1, is_booting/0]).
+-export([is_booted/1]).
-ifdef(TEST).
@@ -653,16 +653,10 @@ await_startup(Node) ->
end.
is_booting(Node) ->
- case rpc:call(Node, rabbit, is_booting, []) of
- true -> true;
- false -> false;
- {badrpc, _} = Err -> Err
- end.
-
-is_booting() ->
- case erlang:whereis(rabbit_boot) of
- undefined -> false;
- P when is_pid(P) -> true
+ case rpc:call(Node, erlang, whereis, [rabbit_boot]) of
+ {badrpc, _} = Err -> Err;
+ undefined -> false;
+ P when is_pid(P) -> true
end.
wait_for_boot_to_start(Node) ->
@@ -753,15 +747,12 @@ is_running() -> is_running(node()).
is_running(Node) -> rabbit_nodes:is_process_running(Node, rabbit).
is_booted(Node) ->
- case rpc:call(Node, rabbit, is_booted, []) of
- true -> true;
- false -> false;
- {badrpc, _} -> false
+ case is_booting(Node) of
+ false ->
+ is_running(Node);
+ _ -> false
end.
-is_booted() ->
- is_running() andalso not is_booting().
-
environment() ->
%% The timeout value is twice that of gen_server:call/2.
[{A, environment(A)} ||