This is an automated email from the ASF dual-hosted git repository.
tkalkirill pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new 5d21abdf414 IGNITE-26244 Fix
AbstractPageReplacementTest.testFsyncDeltaFilesWillNotStartOnCheckpointUntilPageReplacementIsComplete
(#6514)
5d21abdf414 is described below
commit 5d21abdf414f66897f409fb535b151c3b141c890
Author: Kirill Tkalenko <[email protected]>
AuthorDate: Fri Aug 29 16:24:56 2025 +0300
IGNITE-26244 Fix
AbstractPageReplacementTest.testFsyncDeltaFilesWillNotStartOnCheckpointUntilPageReplacementIsComplete
(#6514)
---
.../replacement/AbstractPageReplacementTest.java | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git
a/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/replacement/AbstractPageReplacementTest.java
b/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/replacement/AbstractPageReplacementTest.java
index 13f8a2f0787..5337e7831d7 100644
---
a/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/replacement/AbstractPageReplacementTest.java
+++
b/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/replacement/AbstractPageReplacementTest.java
@@ -22,6 +22,7 @@ import static
org.apache.ignite.internal.pagememory.persistence.checkpoint.Check
import static org.apache.ignite.internal.pagememory.util.PageIdUtils.pageIndex;
import static
org.apache.ignite.internal.testframework.IgniteTestUtils.runAsync;
import static
org.apache.ignite.internal.testframework.matchers.CompletableFutureExceptionMatcher.willTimeoutFast;
+import static
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willBe;
import static
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
import static org.apache.ignite.internal.util.Constants.MiB;
import static org.apache.ignite.internal.util.GridUnsafe.allocateBuffer;
@@ -74,7 +75,6 @@ import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.OffheapReadWriteLock;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -236,7 +236,6 @@ public abstract class AbstractPageReplacementTest extends
IgniteAbstractTest {
}
@Test
- @Disabled("https://issues.apache.org/jira/browse/IGNITE-26244")
void
testFsyncDeltaFilesWillNotStartOnCheckpointUntilPageReplacementIsComplete()
throws Exception {
var startWritePagesOnCheckpointFuture = new CompletableFuture<Void>();
var continueWritePagesOnCheckpointFuture = new
CompletableFuture<Void>();
@@ -292,6 +291,20 @@ public abstract class AbstractPageReplacementTest extends
IgniteAbstractTest {
doReturn(deltaFileIoFuture).when(filePageStore).getNewDeltaFile();
+ doAnswer(invocation -> {
+ assertThat(deltaFileIoFuture, willCompleteSuccessfully());
+
+ return deltaFileIoFuture.join();
+ }).doReturn(null).when(filePageStore).getDeltaFileToCompaction();
+
+ doAnswer(invocation -> {
+ DeltaFilePageStoreIo argument = invocation.getArgument(0);
+
+ assertThat(deltaFileIoFuture, willBe(argument));
+
+ return true;
+ }).when(filePageStore).removeDeltaFile(any());
+
// Trigger checkpoint so that it writes a meta page and one dirty
one. We do it under a read lock to ensure that the background
// does not start after the lock is released.
return checkpointManager.forceCheckpoint("for test");