rabbit_channel: Ignore DOWN message from monitored process if it exited normally
[Why] It happens in CI from time to time and it was crashing the channel process. There is always a `channel.close` method pending in the channel mailbox. [How] For now, log something and ignore the DOWN message. The channel will exit after handling the pending `channel.close` method anyway.
This commit is contained in:
parent
09f1ab47b7
commit
8945b75322
|
@ -36,6 +36,8 @@
|
|||
%% When a queue is declared as exclusive on a channel, the channel
|
||||
%% will notify queue collector of that queue.
|
||||
|
||||
-include_lib("kernel/include/logger.hrl").
|
||||
|
||||
-include_lib("rabbit_common/include/rabbit_framing.hrl").
|
||||
-include_lib("rabbit_common/include/rabbit.hrl").
|
||||
-include_lib("rabbit_common/include/rabbit_misc.hrl").
|
||||
|
@ -729,6 +731,10 @@ handle_info({{'DOWN', QName}, _MRef, process, QPid, Reason},
|
|||
handle_eol(QRef, State)
|
||||
end;
|
||||
|
||||
handle_info({'DOWN', _MRef, process, Pid, normal}, State) ->
|
||||
?LOG_DEBUG("Process ~0p monitored by channel ~0p exited", [Pid, self()]),
|
||||
{noreply, State};
|
||||
|
||||
handle_info({'EXIT', _Pid, Reason}, State) ->
|
||||
{stop, Reason, State};
|
||||
|
||||
|
|
Loading…
Reference in New Issue