diff options
author | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-07-09 19:50:35 +0100 |
---|---|---|
committer | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-07-09 19:50:35 +0100 |
commit | 430f27d70af24eb6e485dc2f656e90882a4b41a0 (patch) | |
tree | 2ad24e5c4b9c00090248448e3c7f0f37f50921c4 | |
parent | c24137652800731c77e7b2e0d629f389c9b7a91a (diff) | |
download | rabbitmq-server-430f27d70af24eb6e485dc2f656e90882a4b41a0.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.erl | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/rabbit_node_monitor.erl b/src/rabbit_node_monitor.erl index f6cbee34..849f5d31 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), |