summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2013-11-01 16:24:58 +0000
committerEmile Joubert <emile@rabbitmq.com>2013-11-01 16:24:58 +0000
commit6712c606f7b35dddc3ca10901abdd02a750a57f9 (patch)
tree77fc6d780f3be53bf43fcff35d9ccc329ec6f64a /src
parent7987ede18f54014c397f217751aeff82909c8ffc (diff)
parent0abea4c4a1ebbf35ec0c45e117730da01112169c (diff)
downloadrabbitmq-server-git-6712c606f7b35dddc3ca10901abdd02a750a57f9.tar.gz
Merged bug25849 into stablerabbitmq_v3_2_1
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_mirror_queue_slave.erl5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl
index ac3098969f..6f78d1d2b5 100644
--- a/src/rabbit_mirror_queue_slave.erl
+++ b/src/rabbit_mirror_queue_slave.erl
@@ -672,8 +672,13 @@ confirm_sender_death(Pid) ->
ok.
forget_sender(_, running) -> false;
+forget_sender(down_from_gm, down_from_gm) -> false; %% [1]
forget_sender(Down1, Down2) when Down1 =/= Down2 -> true.
+%% [1] If another slave goes through confirm_sender_death/1 before we
+%% do we can get two GM sender_death messages in a row for the same
+%% channel - don't treat that as anything special.
+
%% Record and process lifetime events from channels. Forget all about a channel
%% only when down notifications are received from both the channel and from gm.
maybe_forget_sender(ChPid, ChState, State = #state { sender_queues = SQ,