[
https://issues.apache.org/jira/browse/IGNITE-26693?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kirill Tkalenko updated IGNITE-26693:
-------------------------------------
Description:
We need to fix the
*org.apache.ignite.internal.storage.pagememory.StoragePartitionMeta*
consistency at the checkpoint. If we run the attached reproducer, for example
3к times, the partition may not start after restart.
Add this test to
*org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryMvTableStorageTest*.
{code:java}
@Test
void test() throws Exception {
MvPartitionStorage mvPartition = getOrCreateMvPartition(PARTITION_ID);
addWriteCommitted(mvPartition);
CheckpointProgress checkpointProgress =
engine.checkpointManager().forceCheckpoint("test");
CompletableFuture<Void> fut0 = checkpointProgress
.futureFor(CheckpointState.PAGES_SNAPSHOT_TAKEN)
.thenAccept(unused -> mvPartition.updateLease(new
LeaseInfo(100, UUID.randomUUID(), "node")));
assertThat(CompletableFuture.allOf(fut0,
checkpointProgress.futureFor(FINISHED)), willCompleteSuccessfully());
tearDown();
setUp();
// Failed with: IGN-CMN-65535 Unknown page IO type: 0
getOrCreateMvPartition(PARTITION_ID);
}
{code}
was:
We need to fix the
*org.apache.ignite.internal.storage.pagememory.StoragePartitionMeta*
consistency at the checkpoint. If we run the attached reproducer, for example,
the partition may not start after an emergency restart.
Add this test to
*org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryMvTableStorageTest*.
{code:java}
@Test
void test() throws Exception {
MvPartitionStorage mvPartition = getOrCreateMvPartition(PARTITION_ID);
addWriteCommitted(mvPartition);
CheckpointProgress checkpointProgress =
engine.checkpointManager().forceCheckpoint("test");
CompletableFuture<Void> fut0 = checkpointProgress
.futureFor(CheckpointState.PAGES_SNAPSHOT_TAKEN)
.thenAccept(unused -> mvPartition.updateLease(new
LeaseInfo(100, UUID.randomUUID(), "node")));
assertThat(CompletableFuture.allOf(fut0,
checkpointProgress.futureFor(FINISHED)), willCompleteSuccessfully());
tearDown();
setUp();
// Failed with: IGN-CMN-65535 Unknown page IO type: 0
getOrCreateMvPartition(PARTITION_ID);
}
{code}
> Fix a rare race when updating StoragePartitionMeta and writing it to disk
> -------------------------------------------------------------------------
>
> Key: IGNITE-26693
> URL: https://issues.apache.org/jira/browse/IGNITE-26693
> Project: Ignite
> Issue Type: Bug
> Reporter: Kirill Tkalenko
> Assignee: Kirill Tkalenko
> Priority: Critical
> Labels: MakeTeamcityGreenAgain, ignite-3
>
> We need to fix the
> *org.apache.ignite.internal.storage.pagememory.StoragePartitionMeta*
> consistency at the checkpoint. If we run the attached reproducer, for example
> 3к times, the partition may not start after restart.
> Add this test to
> *org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryMvTableStorageTest*.
> {code:java}
> @Test
> void test() throws Exception {
> MvPartitionStorage mvPartition = getOrCreateMvPartition(PARTITION_ID);
> addWriteCommitted(mvPartition);
> CheckpointProgress checkpointProgress =
> engine.checkpointManager().forceCheckpoint("test");
> CompletableFuture<Void> fut0 = checkpointProgress
> .futureFor(CheckpointState.PAGES_SNAPSHOT_TAKEN)
> .thenAccept(unused -> mvPartition.updateLease(new
> LeaseInfo(100, UUID.randomUUID(), "node")));
> assertThat(CompletableFuture.allOf(fut0,
> checkpointProgress.futureFor(FINISHED)), willCompleteSuccessfully());
> tearDown();
> setUp();
> // Failed with: IGN-CMN-65535 Unknown page IO type: 0
> getOrCreateMvPartition(PARTITION_ID);
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)