diff options
| author | Michael Klishin <mklishin@pivotal.io> | 2019-10-03 19:05:49 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-03 19:05:49 +0300 |
| commit | f201e562052e9963c210718e93bbdc005a58a274 (patch) | |
| tree | 31ad462a9a3242921d6b173cf92fa1e0e371986a /src | |
| parent | bcc93dff559c11bac7df97ed402bd762582ddc49 (diff) | |
| parent | ef580fb609740f0a4783c88370209f7e8707eb04 (diff) | |
| download | rabbitmq-server-git-f201e562052e9963c210718e93bbdc005a58a274.tar.gz | |
Merge pull request #2131 from rabbitmq/rabbitmq-server-2130
Error handling improvements in rabbit_epmd_monitor:check_epmd/1
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..1d34629cc3 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@~s) 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@~s) with epmd at port ~p", [Me, Host, Port1]), {ok, State#state{port = Port1}}. |
