summaryrefslogtreecommitdiff
path: root/src
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
commitd985943a2dddbdd66488c4a8e99cd22c10325b4b (patch)
tree52fdac6f2c857d9cf35b57f85040843b18576231 /src
parent31acae72aa8ecca63fecb8cf1ac28c8f516b33cc (diff)
downloadrabbitmq-server-git-d985943a2dddbdd66488c4a8e99cd22c10325b4b.tar.gz
preemptively detect common cause of failed startup
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
Diffstat (limited to 'src')
-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 3facef17f7..c7a5a60027 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),