diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2012-10-12 08:57:15 +0100 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2012-10-12 08:57:15 +0100 |
commit | 368e5aa8a088d74ed584ee8c970d9fa029dccfb2 (patch) | |
tree | 3b098c167bc9e2f217a83f1960913959a6d0f486 | |
parent | 1a2e46cbc786aea76d77a05dc52a33d163d9b426 (diff) | |
download | rabbitmq-server-368e5aa8a088d74ed584ee8c970d9fa029dccfb2.tar.gz |
monitor channel on discardbug25222
just as we do for publish/publish_delivered
w/o that there is a 20s delay in slaves cleaning up after channel
closure if all the messages sent on the channel were discarded.
-rw-r--r-- | src/rabbit_mirror_queue_master.erl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl index d865d675..6dac2808 100644 --- a/src/rabbit_mirror_queue_master.erl +++ b/src/rabbit_mirror_queue_master.erl @@ -379,8 +379,10 @@ discard(Msg = #basic_message { id = MsgId }, ChPid, case dict:find(MsgId, SS) of error -> ok = gm:broadcast(GM, {discard, ChPid, Msg}), - State #state { backing_queue_state = BQ:discard(Msg, ChPid, BQS), - seen_status = dict:erase(MsgId, SS) }; + ensure_monitoring( + ChPid, State #state { + backing_queue_state = BQ:discard(Msg, ChPid, BQS), + seen_status = dict:erase(MsgId, SS) }); {ok, discarded} -> State end. |