diff options
author | Marek Majkowski <majek@lshift.net> | 2009-09-17 15:59:45 +0100 |
---|---|---|
committer | Marek Majkowski <majek@lshift.net> | 2009-09-17 15:59:45 +0100 |
commit | c14bacabe348c83f7434575a55cfd2fd3aa23e84 (patch) | |
tree | dfd2149a6169c59fadabaf2b9aab1b2f126b9d6c | |
parent | ead039b155010045861229aa27424d6c3d7c7197 (diff) | |
download | rabbitmq-server-c14bacabe348c83f7434575a55cfd2fd3aa23e84.tar.gz |
better error messages on standard errors
-rw-r--r-- | src/rabbit.erl | 17 | ||||
-rw-r--r-- | src/rabbit_networking.erl | 11 |
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) -> |