From c89b06d1a7cccaa53934c2d1f11a1265ab4686a3 Mon Sep 17 00:00:00 2001 From: yuz10 <845238369@qq.com> Date: Thu, 22 Feb 2024 11:03:51 +0800 Subject: [PATCH] [ISSUE #316] fix committedIndex after truncate --- .../storage/dledger/store/file/DLedgerMmapFileStore.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dledger/src/main/java/io/openmessaging/storage/dledger/store/file/DLedgerMmapFileStore.java b/dledger/src/main/java/io/openmessaging/storage/dledger/store/file/DLedgerMmapFileStore.java index c776d157..9419d82b 100644 --- a/dledger/src/main/java/io/openmessaging/storage/dledger/store/file/DLedgerMmapFileStore.java +++ b/dledger/src/main/java/io/openmessaging/storage/dledger/store/file/DLedgerMmapFileStore.java @@ -425,6 +425,9 @@ public long truncate(DLedgerEntry entry, long leaderTerm, String leaderId) { PreConditions.check(indexPos == entry.getIndex() * INDEX_UNIT_SIZE, DLedgerResponseCode.DISK_ERROR, null); ledgerEndTerm = entry.getTerm(); ledgerEndIndex = entry.getIndex(); + if (committedIndex > ledgerEndIndex) { + committedIndex = ledgerEndIndex; + } reviseLedgerBeforeBeginIndex(); updateLedgerEndIndexAndTerm(); return entry.getIndex();