Kirill Tkalenko created IGNITE-26988:
----------------------------------------
Summary: Fix exception (Negative position) when trying to write
meta page at checkpoint
Key: IGNITE-26988
URL: https://issues.apache.org/jira/browse/IGNITE-26988
Project: Ignite
Issue Type: Bug
Components: storage engines ai3
Reporter: Kirill Tkalenko
Assignee: Kirill Tkalenko
Fix For: 3.2
It was found that if a checkpoint occurs between the start of a rebalance and
the update of the last applied index and term, the partition meta page will not
be included in the dirty page list and will not be included in the delta file
pageIndexes, which will result in an error when trying to write it.
{noformat}
org.apache.ignite.internal.lang.IgniteInternalException:
java.lang.IllegalArgumentException: Negative position
at
org.apache.ignite.internal.pagememory.persistence.checkpoint.Checkpointer.body(Checkpointer.java:292)
at
org.apache.ignite.internal.util.worker.IgniteWorker.run(IgniteWorker.java:97)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.util.concurrent.CompletionException:
java.lang.IllegalArgumentException: Negative position
at
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
at
java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
at
java.base/java.util.concurrent.CompletableFuture$BiRelay.tryFire(CompletableFuture.java:1423)
at
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
at
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2094)
at
org.apache.ignite.internal.pagememory.persistence.checkpoint.CheckpointPagesWriter.run(CheckpointPagesWriter.java:201)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
... 1 more
Caused by: java.lang.IllegalArgumentException: Negative position
at
java.base/sun.nio.ch.SimpleAsynchronousFileChannelImpl.implWrite(SimpleAsynchronousFileChannelImpl.java:350)
at
java.base/sun.nio.ch.AsynchronousFileChannelImpl.write(AsynchronousFileChannelImpl.java:251)
at org.apache.ignite.internal.fileio.AsyncFileIo.write(AsyncFileIo.java:121)
at
org.apache.ignite.internal.fileio.AbstractFileIo.lambda$writeFully$4(AbstractFileIo.java:58)
at
org.apache.ignite.internal.fileio.AbstractFileIo.fully(AbstractFileIo.java:107)
at
org.apache.ignite.internal.fileio.AbstractFileIo.writeFully(AbstractFileIo.java:58)
at
org.apache.ignite.internal.pagememory.persistence.store.AbstractFilePageStoreIo.write(AbstractFilePageStoreIo.java:190)
at
org.apache.ignite.internal.pagememory.persistence.checkpoint.CheckpointManager.writePageToFilePageStore(CheckpointManager.java:362)
at
org.apache.ignite.internal.pagememory.persistence.checkpoint.CheckpointPagesWriter.writePartitionMeta(CheckpointPagesWriter.java:439)
at
org.apache.ignite.internal.pagememory.persistence.checkpoint.CheckpointPagesWriter.writeDirtyPages(CheckpointPagesWriter.java:228)
at
org.apache.ignite.internal.pagememory.persistence.checkpoint.CheckpointPagesWriter.run(CheckpointPagesWriter.java:188)
... 3 more
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)