summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancesco Mazzoli <francesco@rabbitmq.com>2012-08-31 18:26:30 +0100
committerFrancesco Mazzoli <francesco@rabbitmq.com>2012-08-31 18:26:30 +0100
commitbb1ba4a5c9f3d2219bffdb4cd6ce3f9ab202e97d (patch)
tree4a9c5b3d61d2cacc1fb9734884fe19772efa99a5
parentb09d33688a18af3cb6121d8a95ed70000b3635fa (diff)
downloadrabbitmq-server-bb1ba4a5c9f3d2219bffdb4cd6ce3f9ab202e97d.tar.gz
add the delta in `set_synchronized', fixes the call in `set_length'
-rw-r--r--src/rabbit_mirror_queue_slave.erl6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl
index f11426bb..77f3d11f 100644
--- a/src/rabbit_mirror_queue_slave.erl
+++ b/src/rabbit_mirror_queue_slave.erl
@@ -861,7 +861,7 @@ process_instruction({ack, MsgIds, Length},
{AckTags, MA1} = msg_ids_to_acktags(MsgIds, MA),
{MsgIds1, BQS1} = BQ:ack(AckTags, BQS),
[] = MsgIds1 -- MsgIds, %% ASSERTION
- {ok, set_synchronised(length(MsgIds) - length(AckTags), Length,
+ {ok, set_synchronised(length(AckTags) - length(MsgIds), Length,
State #state { msg_id_ack = MA1,
backing_queue_state = BQS1 })};
process_instruction({requeue, MsgIds, Length},
@@ -870,7 +870,7 @@ process_instruction({requeue, MsgIds, Length},
msg_id_ack = MA }) ->
{AckTags, MA1} = msg_ids_to_acktags(MsgIds, MA),
{_MsgIds, BQS1} = BQ:requeue(AckTags, BQS),
- {ok, set_synchronised(length(MsgIds) - length(AckTags), Length,
+ {ok, set_synchronised(length(AckTags) - length(MsgIds), Length,
State #state { msg_id_ack = MA1,
backing_queue_state = BQS1 })};
process_instruction({sender_death, ChPid},
@@ -924,7 +924,7 @@ set_synchronised(PendingDelta, Length,
State = #state { backing_queue = BQ,
backing_queue_state = BQS,
external_pending = ExtPending }) ->
- ExtPending1 = ExtPending - PendingDelta,
+ ExtPending1 = ExtPending + PendingDelta,
State1 = State #state { external_pending = ExtPending1 },
case ExtPending1 =:= 0 andalso Length =:= BQ:len(BQS) of
true -> set_synchronised1(true, State1);