summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrancesco Mazzoli <francesco@rabbitmq.com>2012-06-28 14:06:31 +0100
committerFrancesco Mazzoli <francesco@rabbitmq.com>2012-06-28 14:06:31 +0100
commit65148f62365b6fcd0f0b7049387686fa6eb27414 (patch)
tree1e5659685cf2246908102db22cebd3012acc414f /src
parent6cacd4b0696e5eb6341babcefad6c31800d3e396 (diff)
downloadrabbitmq-server-git-65148f62365b6fcd0f0b7049387686fa6eb27414.tar.gz
instead of manually removing the current node, filter it in `cluster_status'
Diffstat (limited to 'src')
-rw-r--r--src/rabbit.erl3
-rw-r--r--src/rabbit_mnesia.erl11
-rw-r--r--src/rabbit_node_monitor.erl12
3 files changed, 9 insertions, 17 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 7bdde56954..58e1c50efd 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -332,8 +332,7 @@ start_it(StartFun) ->
stop() ->
rabbit_log:info("Stopping Rabbit~n"),
- ok = app_utils:stop_applications(app_shutdown_order()),
- rabbit_node_monitor:this_node_down().
+ ok = app_utils:stop_applications(app_shutdown_order()).
stop_and_halt() ->
try
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index 727054ad16..e4f50523ab 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -398,8 +398,13 @@ cluster_status() ->
case cluster_status_from_mnesia() of
{ok, Status} ->
Status;
- {error, mnesia_not_running} ->
- rabbit_node_monitor:read_cluster_status_file()
+ {error, _Reason} ->
+ {AllNodes, DiscNodes, RunningNodes} =
+ rabbit_node_monitor:read_cluster_status_file(),
+ %% The cluster status file records the status when the node is
+ %% online, but we know for sure that the node is offline now, so we
+ %% can remove it from the list of running nodes.
+ {AllNodes, DiscNodes, ordsets:del_element(node(), RunningNodes)}
end.
node_info() ->
@@ -489,7 +494,7 @@ init_db_with_mnesia(ClusterNodes, WantDiscNode, Force) ->
after
stop_mnesia()
end,
- rabbit_node_monitor:this_node_down().
+ ensure_mnesia_not_running().
ensure_mnesia_dir() ->
MnesiaDir = dir() ++ "/",
diff --git a/src/rabbit_node_monitor.erl b/src/rabbit_node_monitor.erl
index 9e763da0c9..10ea7a14fc 100644
--- a/src/rabbit_node_monitor.erl
+++ b/src/rabbit_node_monitor.erl
@@ -29,7 +29,6 @@
notify_left_cluster/1,
node_up/2,
notify_node_up/0,
- this_node_down/0,
start_link/0,
init/1,
@@ -58,7 +57,6 @@
-spec(notify_left_cluster/1 :: (node()) -> 'ok').
-spec(node_up/2 :: (node(), boolean()) -> 'ok').
-spec(notify_node_up/0 :: () -> 'ok').
--spec(this_node_down/0 :: () -> 'ok').
-endif.
@@ -177,16 +175,6 @@ notify_node_up() ->
N <- Nodes ],
ok.
-this_node_down() ->
- case mnesia:system_info(is_running) of
- yes -> throw({error, node_running});
- no -> {AllNodes, DiscNodes, RunningNodes} =
- read_cluster_status_file(),
- write_cluster_status_file(
- {AllNodes, DiscNodes,
- ordsets:del_element(node(), RunningNodes)})
- end.
-
%%----------------------------------------------------------------------------
%% gen_server callbacks
%%----------------------------------------------------------------------------