summaryrefslogtreecommitdiff
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
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)
-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),