summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2012-07-13 11:06:05 +0100
committerSimon MacMullen <simon@rabbitmq.com>2012-07-13 11:06:05 +0100
commit8ef211effafbfbfdb047fbfeebf36481d186d8fd (patch)
treef651eceacd90563af734e15d4001927b79ec5b89 /src
parent46f09d33920b620e4c22e8a107d61c7a0c555388 (diff)
downloadrabbitmq-server-git-8ef211effafbfbfdb047fbfeebf36481d186d8fd.tar.gz
Explain this message.
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 c96e98b67a..2d7bd9a112 100644
--- a/src/rabbit_mirror_queue_slave.erl
+++ b/src/rabbit_mirror_queue_slave.erl
@@ -199,6 +199,11 @@ handle_call({gm_deaths, Deaths}, From,
%% master has changed to not us.
gen_server2:reply(From, ok),
erlang:monitor(process, Pid),
+ %% GM is lazy. So we know of the death of the
+ %% slave since it is a neighbour of ours, but
+ %% until a message is sent, not all members will
+ %% know. That might include the new master. So
+ %% broadcast a no-op message to wake everyone up.
ok = gm:broadcast(GM, master_changed),
noreply(State #state { master_pid = Pid })
end