summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_amqqueue_process.erl7
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);