diff options
| author | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-06-28 14:06:31 +0100 |
|---|---|---|
| committer | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-06-28 14:06:31 +0100 |
| commit | 65148f62365b6fcd0f0b7049387686fa6eb27414 (patch) | |
| tree | 1e5659685cf2246908102db22cebd3012acc414f | |
| parent | 6cacd4b0696e5eb6341babcefad6c31800d3e396 (diff) | |
| download | rabbitmq-server-git-65148f62365b6fcd0f0b7049387686fa6eb27414.tar.gz | |
instead of manually removing the current node, filter it in `cluster_status'
| -rw-r--r-- | src/rabbit.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_mnesia.erl | 11 | ||||
| -rw-r--r-- | src/rabbit_node_monitor.erl | 12 |
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 %%---------------------------------------------------------------------------- |
