Didar Shayarov created IGNITE-27465:
---------------------------------------
Summary: Fix EOFException during snapshot SystemView read with
retry logic
Key: IGNITE-27465
URL: https://issues.apache.org/jira/browse/IGNITE-27465
Project: Ignite
Issue Type: Improvement
Reporter: Didar Shayarov
java.io.EOFException when reading snapshot SystemView during creation of a
dump-type snapshot
If the SnapshotSystemView is read while finishing the creation of a dump-type
snapshot, a java.io.EOFException may be thrown, as the snapshot's
meta-information might be only partially written at that moment:
{code:java}
org.apache.ignite.IgniteCheckedException: Failed to deserialize object with
given class loader: jdk.internal.loader.ClassLoaders$AppClassLoader@1dbd16a6
at org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:5016)
~[classes/:?]
at
org.apache.ignite.internal.util.future.GridFutureAdapter.resolve(GridFutureAdapter.java:263)
~[classes/:?]
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:175)
~[classes/:?]
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:144)
~[classes/:?]
at
org.apache.ignite.internal.metric.SystemViewSelfTest.testSnapshotMultithreaded(SystemViewSelfTest.java:2378)
~[test-classes/:?]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) ~[?:?]
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
~[?:?]
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
~[junit-4.12.jar:4.12]
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
~[junit-4.12.jar:4.12]
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
~[junit-4.12.jar:4.12]
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
~[junit-4.12.jar:4.12]
at
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2486)
~[test-classes/:?]
at java.base/java.lang.Thread.run(Thread.java:840) ~[?:?]
Caused by: org.apache.ignite.IgniteException: Failed to deserialize object with
given class loader: jdk.internal.loader.ClassLoaders$AppClassLoader@1dbd16a6
at org.apache.ignite.internal.util.lang.RunnableX.run(RunnableX.java:40)
~[classes/:?]
at
org.apache.ignite.testframework.GridTestUtils.lambda$runAsync$3(GridTestUtils.java:1212)
~[test-classes/:?]
at
org.apache.ignite.testframework.GridTestUtils.lambda$runAsync$4(GridTestUtils.java:1268)
~[test-classes/:?]
at
org.apache.ignite.testframework.GridTestUtils$7.call(GridTestUtils.java:1609)
~[test-classes/:?]
at
org.apache.ignite.testframework.GridTestThread.run(GridTestThread.java:88)
~[test-classes/:?]
Caused by: org.apache.ignite.IgniteException: Failed to deserialize object with
given class loader: jdk.internal.loader.ClassLoaders$AppClassLoader@1dbd16a6
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.readSnapshotMetadatas(IgniteSnapshotManager.java:1829)
~[classes/:?]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.lambda$start0$3cf4d33f$1(IgniteSnapshotManager.java:609)
~[classes/:?]
[13:41:06] >>> Stopping test: SystemViewSelfTest#testSnapshotMultithreaded in
1489 ms <<<
at
org.apache.ignite.internal.util.lang.GridFunc.transform(GridFunc.java:1237)
~[classes/:?]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.lambda$start0$21(IgniteSnapshotManager.java:606)
~[classes/:?]
at
org.apache.ignite.internal.managers.systemview.SystemViewAdapter.size(SystemViewAdapter.java:97)
~[classes/:?]
at
org.apache.ignite.internal.metric.SystemViewSelfTest.lambda$testSnapshotMultithreaded$d8add58$1(SystemViewSelfTest.java:2370)
~[test-classes/:?]
at org.apache.ignite.internal.util.lang.RunnableX.run(RunnableX.java:37)
~[classes/:?]
at
org.apache.ignite.testframework.GridTestUtils.lambda$runAsync$3(GridTestUtils.java:1212)
~[test-classes/:?]
at
org.apache.ignite.testframework.GridTestUtils.lambda$runAsync$4(GridTestUtils.java:1268)
~[test-classes/:?]
at
org.apache.ignite.testframework.GridTestUtils$7.call(GridTestUtils.java:1609)
~[test-classes/:?]
at
org.apache.ignite.testframework.GridTestThread.run(GridTestThread.java:88)
~[test-classes/:?]
Caused by: org.apache.ignite.IgniteCheckedException: Failed to deserialize
object with given class loader:
jdk.internal.loader.ClassLoaders$AppClassLoader@1dbd16a6
at
org.apache.ignite.marshaller.jdk.JdkMarshallerImpl.unmarshal0(JdkMarshallerImpl.java:130)
~[classes/:?]
at
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:86)
~[classes/:?]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.readFromFile(IgniteSnapshotManager.java:1788)
~[classes/:?]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.readSnapshotMetadata(IgniteSnapshotManager.java:1764)
~[classes/:?]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.readSnapshotMetadatas(IgniteSnapshotManager.java:1816)
~[classes/:?]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.lambda$start0$3cf4d33f$1(IgniteSnapshotManager.java:609)
~[classes/:?]
at
org.apache.ignite.internal.util.lang.GridFunc.transform(GridFunc.java:1237)
~[classes/:?]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.lambda$start0$21(IgniteSnapshotManager.java:606)
~[classes/:?]
at
org.apache.ignite.internal.managers.systemview.SystemViewAdapter.size(SystemViewAdapter.java:97)
~[classes/:?]
at
org.apache.ignite.internal.metric.SystemViewSelfTest.lambda$testSnapshotMultithreaded$d8add58$1(SystemViewSelfTest.java:2370)
~[test-classes/:?]
at org.apache.ignite.internal.util.lang.RunnableX.run(RunnableX.java:37)
~[classes/:?]
at
org.apache.ignite.testframework.GridTestUtils.lambda$runAsync$3(GridTestUtils.java:1212)
~[test-classes/:?]
at
org.apache.ignite.testframework.GridTestUtils.lambda$runAsync$4(GridTestUtils.java:1268)
~[test-classes/:?]
at
org.apache.ignite.testframework.GridTestUtils$7.call(GridTestUtils.java:1609)
~[test-classes/:?]
at
org.apache.ignite.testframework.GridTestThread.run(GridTestThread.java:88)
~[test-classes/:?]
Caused by: java.io.EOFException {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)