You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by tk...@apache.org on 2025/07/16 07:00:35 UTC
(ignite-3) 01/01: IGNITE-25857 wip
This is an automated email from the ASF dual-hosted git repository.
tkalkirill pushed a commit to branch ignite-25857
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 929e9f02b13221e0ecfffea84fdcac7be61473bd
Author: Kirill Tkalenko <tk...@yandex.ru>
AuthorDate: Wed Jul 16 10:00:13 2025 +0300
IGNITE-25857 wip
---
.../ignite/internal/raft/storage/impl/RocksDbSharedLogStorage.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorage.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorage.java
index 0c92e0d6fc5..7ab86b6cc72 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorage.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/storage/impl/RocksDbSharedLogStorage.java
@@ -518,7 +518,12 @@ public class RocksDbSharedLogStorage implements LogStorage, Describer {
lastLogIndex = getLastLogIndex();
- if (lastLogIndex > lastIndexKept) {
+ // If lastLogIndex == 0, it means that most likely after the raft snapshot was committed, truncatePrefix was executed, which
+ // deleted all local log entries. And then log entries came from the new leader, which led to the need to clean up previous
+ // local log entries that are no longer there.
+ if (lastLogIndex != 0) {
+ assert lastLogIndex >= lastIndexKept : String.format("lastLogIndex=%s, lastIndexKept=%s", lastLogIndex, lastIndexKept);
+
byte[] beginKey = createKey(lastIndexKept + 1);
byte[] endKey = createKey(lastLogIndex + 1);