summaryrefslogtreecommitdiff
path: root/src/rabbit_mnesia.erl
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2013-04-17 09:46:29 +0100
committerEmile Joubert <emile@rabbitmq.com>2013-04-17 09:46:29 +0100
commit73b7ccda425668ebd26debc6458b265af4f599a8 (patch)
treef7a4399fb5a4bd112c621ced6c24638ff20f85fc /src/rabbit_mnesia.erl
parentedd2b1784af98f759e2d1cedafd05993824bdce7 (diff)
downloadrabbitmq-server-73b7ccda425668ebd26debc6458b265af4f599a8.tar.gz
Abstract
Diffstat (limited to 'src/rabbit_mnesia.erl')
-rw-r--r--src/rabbit_mnesia.erl15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index e331f62c..5d902b5d 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -403,10 +403,8 @@ cluster_status(WhichNodes) ->
end.
node_info() ->
- DelegateBeamLocation = code:which(delegate),
- {ok, {delegate, DelegateBeamHash}} = beam_lib:md5(DelegateBeamLocation),
- {erlang:system_info(otp_release), rabbit_misc:version(), DelegateBeamHash,
- cluster_status_from_mnesia()}.
+ {erlang:system_info(otp_release), rabbit_misc:version(),
+ delegate_beam_hash(), cluster_status_from_mnesia()}.
node_type() ->
DiscNodes = cluster_nodes(disc),
@@ -789,14 +787,17 @@ check_rabbit_consistency(Remote) ->
fun rabbit_misc:version_minor_equivalent/2).
check_beam_compatibility(RemoteHash) ->
- DelegateBeamLocation = code:which(delegate),
- {ok, {delegate, LocalHash}} = beam_lib:md5(DelegateBeamLocation),
- case RemoteHash == LocalHash of
+ case RemoteHash == delegate_beam_hash() of
true -> ok;
false -> {error, {incompatible_bytecode,
"Incompatible Erlang bytecode found on nodes"}}
end.
+delegate_beam_hash() ->
+ DelegateBeamLocation = code:which(delegate),
+ {ok, {delegate, Hash}} = beam_lib:md5(DelegateBeamLocation),
+ Hash.
+
%% This is fairly tricky. We want to know if the node is in the state
%% that a `reset' would leave it in. We cannot simply check if the
%% mnesia tables aren't there because restarted RAM nodes won't have