summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrancesco Mazzoli <francesco@rabbitmq.com>2012-07-09 19:50:35 +0100
committerFrancesco Mazzoli <francesco@rabbitmq.com>2012-07-09 19:50:35 +0100
commitd5d5d6231ce2497195a9374ee09aa044acf650f7 (patch)
tree2ad24e5c4b9c00090248448e3c7f0f37f50921c4 /src
parent39d6801677076389f6178558a0e6c068f97d7caf (diff)
downloadrabbitmq-server-git-d5d5d6231ce2497195a9374ee09aa044acf650f7.tar.gz
do not update the cluster status file by getting the mnesia status
Instead, just update the existing cluster status file. This is because the mnesia propagation time can be slower than the other messages (see other comments in the bug)
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_node_monitor.erl12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/rabbit_node_monitor.erl b/src/rabbit_node_monitor.erl
index f6cbee3494..849f5d3139 100644
--- a/src/rabbit_node_monitor.erl
+++ b/src/rabbit_node_monitor.erl
@@ -197,8 +197,7 @@ handle_cast({node_up, Node, IsDiscNode}, State) ->
case is_already_monitored({rabbit, Node}) of
true -> {noreply, State};
false -> rabbit_log:info("rabbit on node ~p up~n", [Node]),
- {ok, {AllNodes, DiscNodes, RunningNodes}} =
- rabbit_mnesia:cluster_status_from_mnesia(),
+ {AllNodes, DiscNodes, RunningNodes} = read_cluster_status_file(),
write_cluster_status_file(
{ordsets:add_element(Node, AllNodes),
case IsDiscNode of
@@ -211,8 +210,7 @@ handle_cast({node_up, Node, IsDiscNode}, State) ->
{noreply, State}
end;
handle_cast({joined_cluster, Node, IsDiscNode}, State) ->
- {ok, {AllNodes, DiscNodes, RunningNodes}} =
- rabbit_mnesia:cluster_status_from_mnesia(),
+ {AllNodes, DiscNodes, RunningNodes} = read_cluster_status_file(),
write_cluster_status_file({ordsets:add_element(Node, AllNodes),
case IsDiscNode of
true -> ordsets:add_element(Node,
@@ -222,8 +220,7 @@ handle_cast({joined_cluster, Node, IsDiscNode}, State) ->
RunningNodes}),
{noreply, State};
handle_cast({left_cluster, Node}, State) ->
- {ok, {AllNodes, DiscNodes, RunningNodes}} =
- rabbit_mnesia:cluster_status_from_mnesia(),
+ {AllNodes, DiscNodes, RunningNodes} = read_cluster_status_file(),
write_cluster_status_file({ordsets:del_element(Node, AllNodes),
ordsets:del_element(Node, DiscNodes),
ordsets:del_element(Node, RunningNodes)}),
@@ -233,8 +230,7 @@ handle_cast(_Msg, State) ->
handle_info({'DOWN', _MRef, process, {rabbit, Node}, _Reason}, State) ->
rabbit_log:info("rabbit on node ~p down~n", [Node]),
- {ok, {AllNodes, DiscNodes, RunningNodes}} =
- rabbit_mnesia:cluster_status_from_mnesia(),
+ {AllNodes, DiscNodes, RunningNodes} = read_cluster_status_file(),
write_cluster_status_file({AllNodes, DiscNodes,
ordsets:del_element(Node, RunningNodes)}),
ok = handle_dead_rabbit(Node),