From 7914a424d689c0c0a9c8adf2af0c8e7fa30c976d Mon Sep 17 00:00:00 2001 From: pdouelle Date: Tue, 7 Apr 2026 09:54:52 +0200 Subject: [PATCH] Fix HasRestoredToEnd() stuck when beginOffset == endOffset (#463) When a changelog topic is empty after segment deletion (beginOffset == endOffset) and no checkpoint exists, the restore consumer has nothing to consume but HasRestoredToEnd() returns false forever because the strict > comparison misses the == case. Change > to >= to correctly detect empty topics. --- core/Processors/Internal/StoreChangelogReader.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/Processors/Internal/StoreChangelogReader.cs b/core/Processors/Internal/StoreChangelogReader.cs index 499c68b9..794dd050 100644 --- a/core/Processors/Internal/StoreChangelogReader.cs +++ b/core/Processors/Internal/StoreChangelogReader.cs @@ -266,7 +266,7 @@ internal bool HasRestoredToEnd(ChangelogMetadata changelogMetadata) if(changelogMetadata.CurrentOffset >= endOffset // changelog topic has a delete policy, begin offset > end offset because the topic is empty #195 - || changelogMetadata.BeginOffset > changelogMetadata.RestoreEndOffset) + || changelogMetadata.BeginOffset >= changelogMetadata.RestoreEndOffset) return true; if (!changelogMetadata.BufferedRecords.Any())