This is an automated email from the ASF dual-hosted git repository. williamsong pushed a commit to branch snapshot-branch2 in repository https://gitbox.apache.org/repos/asf/ratis.git
commit 2d5f62b9b34a614e8273c727b04483ce83c22b38 Author: William Song <[email protected]> AuthorDate: Tue Jan 3 13:54:18 2023 +0800 RATIS-1763. Purging logs in an ordered manner. (#801) --- .../apache/ratis/server/raftlog/segmented/SegmentedRaftLogCache.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogCache.java b/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogCache.java index c9ca6e440..b6f932d6a 100644 --- a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogCache.java +++ b/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogCache.java @@ -318,8 +318,8 @@ public class SegmentedRaftLogCache { // to purge that. int startIndex = (overlappedSegment.getEndIndex() == index) ? segmentIndex : segmentIndex - 1; - for (int i = startIndex; i >= 0; i--) { - LogSegment segment = segments.remove(i); + for (int i = 0; i <= startIndex; i++) { + LogSegment segment = segments.remove(0); // must remove the first segment to avoid gaps. sizeInBytes -= segment.getTotalFileSize(); list.add(SegmentFileInfo.newClosedSegmentFileInfo(segment)); }
