summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_queue_index.erl10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl
index 014afbc873..003e2d625d 100644
--- a/src/rabbit_queue_index.erl
+++ b/src/rabbit_queue_index.erl
@@ -171,9 +171,9 @@ init(Name) ->
lists:foldl(
fun (Seg, {Segments2, CountAcc, DCountAcc}) ->
Segment = segment_find_or_new(Seg, Dir, Segments2),
- {SegEntries, _PubCount, _AckCount, Segment1} =
+ {SegEntries, PubCount, AckCount, Segment1} =
load_segment(false, Segment),
- {Segment2 = #segment { pubs = PubCount, acks = AckCount },
+ {Segment2 = #segment { pubs = PubCount1, acks = AckCount1 },
DCountAcc1} =
array:sparse_foldl(
fun (RelSeq, {{MsgId, _IsPersistent}, Del, no_ack},
@@ -183,9 +183,11 @@ init(Name) ->
rabbit_msg_store:contains(MsgId),
CleanShutdown, Del, RelSeq, Segment3),
{Segment4, DCountAcc2 + DCountDelta}
- end, {Segment1, DCountAcc}, SegEntries),
+ end, {Segment1 #segment { pubs = PubCount,
+ acks = AckCount }, DCountAcc},
+ SegEntries),
{segment_store(Segment2, Segments2),
- CountAcc + PubCount - AckCount, DCountAcc1}
+ CountAcc + PubCount1 - AckCount1, DCountAcc1}
end, {Segments, 0, DCount}, AllSegs),
{Count, State2 #qistate { segments = Segments1, dirty_count = DCount1 }}.