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
commit79c481b26c6b32efeab7b1c05754f2b4a562370f (patch)
tree29c70b49d238fb91ad6a590c6f008fdca8a41491
parent54ad910e0b6ba58b88ed42da7e7a0802ddafb6ea (diff)
parentfdadf7a4cb1117839ba6055a59cc3da5a172f0a2 (diff)
downloadrabbitmq-server-git-79c481b26c6b32efeab7b1c05754f2b4a562370f.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 3e3de10bbe..f08f82922d 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 964b0eb4f9..294e1ebb14 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 5b39c2c61d..73ab64bf24 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,