summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-08-12 11:26:30 +0100
committerSimon MacMullen <simon@rabbitmq.com>2014-08-12 11:26:30 +0100
commit97b5a43c2c7b79d8bc46ed3f3990d3b23b1c5a67 (patch)
tree7a6f6e3e9a43716a0060b5c1241b86f0c38c97f2
parent6dfc266d0c5e7c9b13b93fadfe37b8ff44e517df (diff)
downloadrabbitmq-server-bug26336.tar.gz
Improve logging when auto-clustering fails.bug26336
-rw-r--r--src/rabbit_mnesia.erl34
1 files changed, 23 insertions, 11 deletions
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index e60388f0..484bff8c 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -133,15 +133,16 @@ init_from_config() ->
end.
auto_cluster(TryNodes, NodeType) ->
- case find_good_node(nodes_excl_me(TryNodes)) of
+ case find_auto_cluster_node(nodes_excl_me(TryNodes)) of
{ok, Node} ->
rabbit_log:info("Node '~p' selected for auto-clustering~n", [Node]),
{ok, {_, DiscNodes, _}} = discover_cluster0(Node),
init_db_and_upgrade(DiscNodes, NodeType, true),
rabbit_node_monitor:notify_joined_cluster();
none ->
- rabbit_log:warning("Could not find any node for auto-clustering "
- "from: ~p~n", [TryNodes]),
+ rabbit_log:warning(
+ "Could not find any node for auto-clustering from: ~p~n"
+ "Starting blank node...~n", [TryNodes]),
init_db_and_upgrade([node()], disc, false)
end.
@@ -792,17 +793,28 @@ is_virgin_node() ->
false
end.
-find_good_node([]) ->
+find_auto_cluster_node([]) ->
none;
-find_good_node([Node | Nodes]) ->
+find_auto_cluster_node([Node | Nodes]) ->
case rpc:call(Node, rabbit_mnesia, node_info, []) of
- {badrpc, _Reason} -> find_good_node(Nodes);
+ {badrpc, _} = Reason ->
+ rabbit_log:warning("Could not auto-cluster with ~s: ~p~n~s~n",
+ [Node, Reason,rabbit_nodes:diagnostics([Node])]),
+ find_auto_cluster_node(Nodes);
%% old delegate hash check
- {_OTP, _Rabbit, _Hash, _} -> find_good_node(Nodes);
- {OTP, Rabbit, _} -> case check_consistency(OTP, Rabbit) of
- {error, _} -> find_good_node(Nodes);
- ok -> {ok, Node}
- end
+ {_OTP, Rabbit, _Hash, _} ->
+ rabbit_log:warning(
+ "Could not auto-cluster with ~s version ~s~n",
+ [Node, Rabbit]),
+ find_auto_cluster_node(Nodes);
+ {OTP, Rabbit, _} ->
+ case check_consistency(OTP, Rabbit) of
+ {error, _} -> rabbit_log:warning(
+ "Could not auto-cluster with ~s versions ~p~n",
+ [Node, {OTP, Rabbit}]),
+ find_auto_cluster_node(Nodes);
+ ok -> {ok, Node}
+ end
end.
is_only_clustered_disc_node() ->