summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Majkowski <majek@lshift.net>2009-09-17 15:59:45 +0100
committerMarek Majkowski <majek@lshift.net>2009-09-17 15:59:45 +0100
commitc14bacabe348c83f7434575a55cfd2fd3aa23e84 (patch)
treedfd2149a6169c59fadabaf2b9aab1b2f126b9d6c
parentead039b155010045861229aa27424d6c3d7c7197 (diff)
downloadrabbitmq-server-c14bacabe348c83f7434575a55cfd2fd3aa23e84.tar.gz
better error messages on standard errors
-rw-r--r--src/rabbit.erl17
-rw-r--r--src/rabbit_networking.erl11
2 files changed, 25 insertions, 3 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index ef1e0049..a54fc48e 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -110,7 +110,24 @@ rotate_logs(BinarySuffix) ->
%%--------------------------------------------------------------------
+fatal(Reason) ->
+ io:format("~n~n"),
+ io:format(" [*] Startup failed: ~p~n", [Reason]),
+ io:format(" [*] QUITTING!~n"),
+ timer:sleep(100), % higher chances to flush i/o
+ halt(255).
+
start(normal, []) ->
+ try do_start() of
+ X -> X
+ catch
+ {error, Reason, Args} ->
+ fatal({Reason, Args});
+ {error, Reason} ->
+ fatal(Reason)
+ end.
+
+do_start() ->
{ok, SupPid} = rabbit_sup:start_link(),
diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
index eed21a01..f7007c61 100644
--- a/src/rabbit_networking.erl
+++ b/src/rabbit_networking.erl
@@ -101,7 +101,7 @@ check_tcp_listener_address(NamePrefix, Host, Port) ->
if is_integer(Port) andalso (Port >= 0) andalso (Port =< 65535) -> ok;
true -> error_logger:error_msg("invalid port ~p - not 0..65535~n",
[Port]),
- throw({error, invalid_port, Port})
+ throw({error, {invalid_port, Port}})
end,
Name = rabbit_misc:tcp_name(NamePrefix, IPAddress, Port),
{IPAddress, Name}.
@@ -117,7 +117,7 @@ start_ssl_listener(Host, Port, SslOpts) ->
start_listener(Host, Port, Label, OnConnect) ->
{IPAddress, Name} =
check_tcp_listener_address(rabbit_tcp_listener_sup, Host, Port),
- {ok,_} = supervisor:start_child(
+ case supervisor:start_child(
rabbit_sup,
{Name,
{tcp_listener_sup, start_link,
@@ -125,7 +125,12 @@ start_listener(Host, Port, Label, OnConnect) ->
{?MODULE, tcp_listener_started, []},
{?MODULE, tcp_listener_stopped, []},
OnConnect, Label]},
- transient, infinity, supervisor, [tcp_listener_sup]}),
+ transient, infinity, supervisor, [tcp_listener_sup]}) of
+ {ok, _} -> ok;
+ {error, _Reason} -> error_logger:error_msg("failed to bind ~p to ~p:~p~n",
+ [Label, Host, Port]),
+ throw({error, {failed_to_bind, Host, Port}})
+ end,
ok.
stop_tcp_listener(Host, Port) ->