diff options
| author | Michael Klishin <michael@clojurewerkz.org> | 2019-10-03 15:43:06 +0300 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2019-10-03 15:43:06 +0300 |
| commit | bde2a47f150fefd4d8acac8b117358c6418cf7bf (patch) | |
| tree | df42996d5caac05c127aaa64dfda9a92f2345c1c /src | |
| parent | bcc93dff559c11bac7df97ed402bd762582ddc49 (diff) | |
| download | rabbitmq-server-git-bde2a47f150fefd4d8acac8b117358c6418cf7bf.tar.gz | |
Error handling improvements in rabbit_epmd_monitor:check_epmd/1
To produce less noise and more informative messages.
This also introduces a function that allows for manual
check triggering.
Closes #2130.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_epmd_monitor.erl | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/rabbit_epmd_monitor.erl b/src/rabbit_epmd_monitor.erl index 410bff8564..6f0a8a5909 100644 --- a/src/rabbit_epmd_monitor.erl +++ b/src/rabbit_epmd_monitor.erl @@ -59,17 +59,29 @@ init_handle_port_please(noport, Mod, Me, Host) -> me = Me, host = Host, port = undefined}, + rabbit_log:info("epmd does not know us, re-registering as ~s~n", [Me]), {ok, ensure_timer(State)}; init_handle_port_please({port, Port, _Version}, Mod, Me, Host) -> + rabbit_log:info("epmd monitor knows us, inter-node communication (distribution) port: ~p", [Port]), State = #state{mod = Mod, me = Me, host = Host, port = Port}, + {ok, ensure_timer(State)}; +init_handle_port_please({error, Error}, Mod, Me, Host) -> + rabbit_log:error("epmd monitor failed to retrieve our port from epmd: ~p", [Error]), + State = #state{mod = Mod, + me = Me, + host = Host, + port = undefined}, {ok, ensure_timer(State)}. handle_call(_Request, _From, State) -> {noreply, State}. +handle_cast(check, State0) -> + {ok, State1} = check_epmd(State0), + {noreply, ensure_timer(State1#state{timer = undefined})}; handle_cast(_Msg, State) -> {noreply, State}. @@ -95,14 +107,19 @@ check_epmd(State = #state{mod = Mod, me = Me, host = Host, port = Port}) -> + rabbit_log:debug("Asked to [re-]register this node (~s@~p) with epmd...", [Me, Host]), Port1 = case Mod:port_please(Me, Host) of noport -> rabbit_log:warning("epmd does not know us, re-registering ~s at port ~b~n", [Me, Port]), Port; {port, NewPort, _Version} -> - NewPort + NewPort; + {error, Error} -> + rabbit_log:error("epmd monitor failed to retrieve our port from epmd: ~p", [Error]), + Port end, rabbit_nodes:ensure_epmd(), Mod:register_node(Me, Port1), + rabbit_log:debug("[Re-]registered this node (~s@~p) with epmd at port ~p", [Me, Host, Port1]), {ok, State#state{port = Port1}}. |
