diff options
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index 9494367764..b8b27443da 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -1341,6 +1341,12 @@ handle_cast(force_event_refresh, State = #q{exclusive_consumer = Exclusive}) -> handle_cast({dead_letter, {Msg, AckTag}, Reason}, State) -> dead_letter_msg(Msg, AckTag, Reason, State). +%% We need to not ignore this as we need to remove outstanding +%% confirms due to queue death. +handle_info({'DOWN', _MonitorRef, process, DownPid, Reason}, + State = #q{delayed_stop = DS}) when DS =/= undefined -> + handle_queue_down(DownPid, Reason, State); + handle_info(_, State = #q{delayed_stop = DS}) when DS =/= undefined -> noreply(State); @@ -1369,6 +1375,7 @@ handle_info({'DOWN', _MonitorRef, process, DownPid, _Reason}, %% monitor-and-async- delete in case the connection goes away %% unexpectedly. stop_later(normal, State); + handle_info({'DOWN', _MonitorRef, process, DownPid, Reason}, State) -> case handle_ch_down(DownPid, State) of {ok, State1} -> handle_queue_down(DownPid, Reason, State1); |
