summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2013-06-28 13:49:04 +0100
committerEmile Joubert <emile@rabbitmq.com>2013-06-28 13:49:04 +0100
commit8466b2569451adbcde22c34e7a71f5a5f174026c (patch)
tree29c70b49d238fb91ad6a590c6f008fdca8a41491
parentc6f3dcdc04f312051f644200c95d6580e51852b1 (diff)
parent133bffae47f6490fe8d4c551765ea18d4e0abbcf (diff)
downloadrabbitmq-server-8466b2569451adbcde22c34e7a71f5a5f174026c.tar.gz
Merged bug25645 into stable
-rw-r--r--src/rabbit_amqqueue_process.erl1
-rw-r--r--src/rabbit_mirror_queue_slave.erl1
-rw-r--r--src/rabbit_variable_queue.erl3
3 files changed, 3 insertions, 2 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index 3e3de10b..f08f8292 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -540,6 +540,7 @@ attempt_delivery(Delivery = #delivery{sender = SenderPid, message = Message},
{false, BQS1} ->
deliver_msgs_to_consumers(
fun (true, State1 = #q{backing_queue_state = BQS2}) ->
+ true = BQ:is_empty(BQS2),
{AckTag, BQS3} = BQ:publish_delivered(
Message, Props, SenderPid, BQS2),
{{Message, Delivered, AckTag},
diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl
index 964b0eb4..294e1ebb 100644
--- a/src/rabbit_mirror_queue_slave.erl
+++ b/src/rabbit_mirror_queue_slave.erl
@@ -724,6 +724,7 @@ process_instruction({publish_delivered, ChPid, MsgProps,
Msg = #basic_message { id = MsgId }}, State) ->
State1 = #state { backing_queue = BQ, backing_queue_state = BQS } =
publish_or_discard(published, ChPid, MsgId, State),
+ true = BQ:is_empty(BQS),
{AckTag, BQS1} = BQ:publish_delivered(Msg, MsgProps, ChPid, BQS),
{ok, maybe_store_ack(true, MsgId, AckTag,
State1 #state { backing_queue_state = BQS1 })};
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 5b39c2c6..73ab64bf 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -546,8 +546,7 @@ publish_delivered(Msg = #basic_message { is_persistent = IsPersistent,
id = MsgId },
MsgProps = #message_properties {
needs_confirming = NeedsConfirming },
- _ChPid, State = #vqstate { len = 0,
- next_seq_id = SeqId,
+ _ChPid, State = #vqstate { next_seq_id = SeqId,
out_counter = OutCount,
in_counter = InCount,
persistent_count = PCount,