diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2012-09-26 11:12:57 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2012-09-26 11:12:57 +0100 |
commit | 7df087a1d09c71ae8c2e0292a13c63cb8fb182a1 (patch) | |
tree | 0bce5f33c264515f98f05193c1832f5f179c4cea | |
parent | dd8b5390d61f07a9b8a2da89533831a881f3e1f5 (diff) | |
download | rabbitmq-server-bug25182.tar.gz |
Fake rebase: 8ebdcd9a5d2e (which bug25182 was branched from) got junked. "rebase" from 5859a8e6d682.bug25182
-rw-r--r-- | src/rabbit_mirror_queue_master.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl index 10f60c53..c11a8ff7 100644 --- a/src/rabbit_mirror_queue_master.erl +++ b/src/rabbit_mirror_queue_master.erl @@ -170,7 +170,10 @@ publish_delivered(AckRequired, Msg = #basic_message { id = MsgId }, MsgProps, backing_queue_state = BQS, ack_msg_id = AM }) -> false = dict:is_key(MsgId, SS), %% ASSERTION - ok = gm:broadcast( + %% Must use confirmed_broadcast here in order to guarantee that + %% all slaves are forced to interpret this publish_delivered at + %% the same point, especially if we die and a slave is promoted. + ok = gm:confirmed_broadcast( GM, {publish, {true, AckRequired}, ChPid, MsgProps, Msg}), {AckTag, BQS1} = BQ:publish_delivered(AckRequired, Msg, MsgProps, ChPid, BQS), |