summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2010-06-18 13:54:13 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2010-06-18 13:54:13 +0100
commit19a44edbfa9f59e6ce944e08bcac232ffd31eca7 (patch)
treeceed391fb410f0014c41d68015d0325c4551e8ec
parent9f61337d1a4cd6f2d371f32c4db821d67362f620 (diff)
downloadrabbitmq-server-git-19a44edbfa9f59e6ce944e08bcac232ffd31eca7.tar.gz
Guarantee that we're only reading max one segment when we load in from δ to q3(β)
-rw-r--r--src/rabbit_variable_queue.erl5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 7c5e527fdd..a3a33377cc 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -1269,8 +1269,11 @@ maybe_deltas_to_betas(State = #vqstate {
#delta { start_seq_id = DeltaSeqId,
count = DeltaCount,
end_seq_id = DeltaSeqIdEnd } = Delta,
+ DeltaSeqIdEnd1 =
+ lists:min([rabbit_queue_index:next_segment_boundary(DeltaSeqId),
+ DeltaSeqIdEnd]),
{List, DeltaSeqId1, IndexState1} =
- rabbit_queue_index:read(DeltaSeqId, DeltaSeqIdEnd, IndexState),
+ rabbit_queue_index:read(DeltaSeqId, DeltaSeqIdEnd1, IndexState),
{Q3a, IndexState2} = betas_from_index_entries(
List, TransientThreshold, IndexState1),
State1 = State #vqstate { index_state = IndexState2 },