[
https://issues.apache.org/jira/browse/IGNITE-17215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17565890#comment-17565890
]
Pavel Pereslegin commented on IGNITE-17215:
-------------------------------------------
[~timonin.maksim], [~NSAmelchev],
Could you please take a look why this test started to fail?
https://ci2.ignite.apache.org/project.html?projectId=IgniteTests24Java8&testNameId=2699781523141512829&tab=testDetails&branch_IgniteTests24Java8=%3Cdefault%3E
{noformat}
lass org.apache.ignite.IgniteException: Failed to read WAL record at position:
54496847, size: 67108669, expectedPtr: WALPointer [idx=0, fileOff=54496847,
len=0]
at
org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:48)
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.AbstractSnapshotSelfTest.checkSnpWalRecords(AbstractSnapshotSelfTest.java:682)
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManagerSelfTest.testSnapshotLocalPartitionMultiCpWithLoad(IgniteSnapshotManagerSelfTest.java:220)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2428)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to read WAL
record at position: 54496847, size: 67108669, expectedPtr: WALPointer [idx=0,
fileOff=54496847, len=0]
at
org.apache.ignite.internal.processors.cache.persistence.wal.AbstractWalRecordsIterator.handleRecordException(AbstractWalRecordsIterator.java:327)
at
org.apache.ignite.internal.processors.cache.persistence.wal.reader.StandaloneWalRecordsIterator.handleRecordException(StandaloneWalRecordsIterator.java:389)
at
org.apache.ignite.internal.processors.cache.persistence.wal.AbstractWalRecordsIterator.advanceRecord(AbstractWalRecordsIterator.java:291)
at
org.apache.ignite.internal.processors.cache.persistence.wal.reader.StandaloneWalRecordsIterator.advanceRecord(StandaloneWalRecordsIterator.java:286)
at
org.apache.ignite.internal.processors.cache.persistence.wal.AbstractWalRecordsIterator.advance(AbstractWalRecordsIterator.java:176)
at
org.apache.ignite.internal.processors.cache.persistence.wal.AbstractWalRecordsIterator.onNext(AbstractWalRecordsIterator.java:135)
at
org.apache.ignite.internal.processors.cache.persistence.wal.AbstractWalRecordsIterator.onNext(AbstractWalRecordsIterator.java:52)
at
org.apache.ignite.internal.util.GridCloseableIteratorAdapter.nextX(GridCloseableIteratorAdapter.java:44)
at
org.apache.ignite.internal.util.lang.GridIteratorAdapter.next(GridIteratorAdapter.java:35)
... 14 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to read WAL
record at position: 54496847, size: 67108669, expectedPtr: WALPointer [idx=0,
fileOff=54496847, len=0]
at
org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordV1Serializer.readWithCrc(RecordV1Serializer.java:396)
at
org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordV2Serializer.readRecord(RecordV2Serializer.java:244)
at
org.apache.ignite.internal.processors.cache.persistence.wal.AbstractWalRecordsIterator.advanceRecord(AbstractWalRecordsIterator.java:273)
... 20 more
Caused by: java.nio.InvalidMarkException
at java.base/java.nio.Buffer.reset(Buffer.java:399)
at java.base/java.nio.ByteBuffer.reset(ByteBuffer.java:1197)
at java.base/java.nio.MappedByteBuffer.reset(MappedByteBuffer.java:253)
at java.base/java.nio.MappedByteBuffer.reset(MappedByteBuffer.java:67)
at
org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordV2Serializer$1.readWithHeaders(RecordV2Serializer.java:129)
at
org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordV1Serializer.readWithCrc(RecordV1Serializer.java:374)
... 22 more
Suppressed: class
org.apache.ignite.internal.processors.cache.persistence.wal.crc.IgniteDataIntegrityViolationException:
val: 1399951177 writtenCrc: 1878214400
at
org.apache.ignite.internal.processors.cache.persistence.wal.io.FileInput$Crc32CheckingFileInput.close(FileInput.java:105)
at
org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordV1Serializer.readWithCrc(RecordV1Serializer.java:381)
{noformat}
> Write ClusterSnapshotRecord to WAL
> ----------------------------------
>
> Key: IGNITE-17215
> URL: https://issues.apache.org/jira/browse/IGNITE-17215
> Project: Ignite
> Issue Type: New Feature
> Reporter: Maksim Timonin
> Assignee: Maksim Timonin
> Priority: Major
> Labels: IEP-89
> Fix For: 2.14
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> For PITR [1] process of recovering based on ClusterSnapshot + archived WALs.
> It's required to have a point in WAL which splits whole WAL on 2 areas:
> # Before this point all data changes are contained within ClusterSnapshot,
> and no need to recover them from WAL archived files.
> # After this point all data need to be recovered from WAL archived files.
> It's proposed to write ClusterSnapshotRecord while the checkpoint is running
> (cp#writeLock has acquired). ClusterSnapshot process guarantees:
> # there is no active transactions (or any data changes) in moment of running
> checkpoint.
> # ClusterSnapshot contains all data pages that will be persisted within this
> checkpoint process.
> Then every logical record after begin CheckointRecord doesn't belong to
> ClusterSnapshot. Then it's safe to write ClusterSnapshotRecord within the
> checkpoint process.
> [1]
> [https://cwiki.apache.org/confluence/pages/editpage.action?pageId=211884314]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)