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 | b7c77eb3de9c10e112ca68643e74408b8227d70a (patch) | |
| tree | 0bce5f33c264515f98f05193c1832f5f179c4cea /src | |
| parent | fee39b15d9d08ffda26ea043a20eae408341812b (diff) | |
| download | rabbitmq-server-git-b7c77eb3de9c10e112ca68643e74408b8227d70a.tar.gz | |
Fake rebase: 8ebdcd9a5d2e (which bug25182 was branched from) got junked. "rebase" from 5859a8e6d682.
Diffstat (limited to 'src')
| -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 10f60c535a..c11a8ff7c0 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), |
