summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2012-09-26 11:12:57 +0100
committerSimon MacMullen <simon@rabbitmq.com>2012-09-26 11:12:57 +0100
commit7df087a1d09c71ae8c2e0292a13c63cb8fb182a1 (patch)
tree0bce5f33c264515f98f05193c1832f5f179c4cea
parentdd8b5390d61f07a9b8a2da89533831a881f3e1f5 (diff)
downloadrabbitmq-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.erl5
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),