summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2010-08-25 05:51:02 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2010-08-25 05:51:02 +0100
commit2f39721f2a56a90666e18af3430c0a7061005fd4 (patch)
tree52fdac6f2c857d9cf35b57f85040843b18576231
parentf588b129a945c940a716c803d784bde29b6ff30e (diff)
downloadrabbitmq-server-bug23141.tar.gz
preemptively detect common cause of failed startupbug23141
namely when the node does actually start (if it doesn't then the launcher process terminates, which we detect already) but we cannot connect to it due to dns/network/epmd issues
-rw-r--r--src/rabbit_multi.erl9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/rabbit_multi.erl b/src/rabbit_multi.erl
index 3facef17..c7a5a600 100644
--- a/src/rabbit_multi.erl
+++ b/src/rabbit_multi.erl
@@ -93,7 +93,14 @@ usage() ->
action(start_all, [NodeCount], RpcTimeout) ->
io:format("Starting all nodes...~n", []),
application:load(rabbit),
- NodeName = rabbit_misc:nodeparts(getenv("RABBITMQ_NODENAME")),
+ {_NodeNamePrefix, NodeHost} = NodeName = rabbit_misc:nodeparts(
+ getenv("RABBITMQ_NODENAME")),
+ case net_adm:names(NodeHost) of
+ {error, EpmdReason} ->
+ throw({cannot_connect_to_epmd, NodeHost, EpmdReason});
+ {ok, _} ->
+ ok
+ end,
{NodePids, Running} =
case list_to_integer(NodeCount) of
1 -> {NodePid, Started} = start_node(rabbit_misc:makenode(NodeName),