summaryrefslogtreecommitdiff
path: root/src/rabbit_mnesia.erl
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2012-10-15 15:37:32 +0100
committerSimon MacMullen <simon@rabbitmq.com>2012-10-15 15:37:32 +0100
commit8404d0a107c9cf89e31b099b36bfa1866555900c (patch)
treede3f01608bdeacdf7dda4726fdeca233b907ba0f /src/rabbit_mnesia.erl
parentbf630bd68f5e1f7c7ef91499746ab0559d1975a5 (diff)
downloadrabbitmq-server-8404d0a107c9cf89e31b099b36bfa1866555900c.tar.gz
Subscribe to system events, receive inconsistent_database.
Diffstat (limited to 'src/rabbit_mnesia.erl')
-rw-r--r--src/rabbit_mnesia.erl12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index 87069228..b07ac7d4 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -320,10 +320,20 @@ status() ->
[{nodes, (IfNonEmpty(disc, cluster_nodes(disc)) ++
IfNonEmpty(ram, cluster_nodes(ram)))}] ++
case mnesia:system_info(is_running) of
- yes -> [{running_nodes, cluster_nodes(running)}];
+ yes -> RunningNodes = cluster_nodes(running),
+ [{running_nodes, cluster_nodes(running)},
+ {partitions, mnesia_partitions(RunningNodes)}];
no -> []
end.
+mnesia_partitions(Nodes) ->
+ {Replies, _BadNodes} = rpc:multicall(
+ Nodes, rabbit_node_monitor, partition, []),
+ case [Reply || Reply = {_, R} <- Replies, R =/= none] of
+ [] -> none;
+ List -> List
+ end.
+
is_clustered() -> AllNodes = cluster_nodes(all),
AllNodes =/= [] andalso AllNodes =/= [node()].