Vyacheslav Koptilin created IGNITE-12766:
--------------------------------------------
Summary: Node startup can be broken in case of using Local cache
with persistence enabled.
Key: IGNITE-12766
URL: https://issues.apache.org/jira/browse/IGNITE-12766
Project: Ignite
Issue Type: Bug
Reporter: Vyacheslav Koptilin
Assignee: Vyacheslav Koptilin
Fix For: 2.9
Trying to upgrade from the previous version of Apache Ignite (AI 2.7.6 for
example) may result in the following exception when Local cache is used and
persistence enabled.
{noformat}
[2020-03-05 16:47:39,222][ERROR][main][IgniteKernal] Exception during start
processors, node will be stopped and close connections[2020-03-05
16:47:39,222][ERROR][main][IgniteKernal] Exception during start processors,
node will be stopped and close connectionsclass
org.apache.ignite.IgniteCheckedException: An error occurred during cache
configuration loading from file [file=...] at
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:965)
at
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheConfigurations(FilePageStoreManager.java:907)
at
org.apache.ignite.internal.processors.cache.GridLocalConfigManager.restoreCaches(GridLocalConfigManager.java:171)
at
org.apache.ignite.internal.processors.cache.GridLocalConfigManager.restoreCacheConfigurations(GridLocalConfigManager.java:124)
at
org.apache.ignite.internal.processors.cache.GridCacheProcessor$CacheRecoveryLifecycle.onReadyForRead(GridCacheProcessor.java:5198)
at
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetastorageReadyForRead(GridCacheDatabaseSharedManager.java:488)
at
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readMetastore(GridCacheDatabaseSharedManager.java:824)
at
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetaStorageSubscribersOnReadyForRead(GridCacheDatabaseSharedManager.java:5378)
at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1286) at
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2054)
at
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1704)
at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1117) at
org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1035)
at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:921) at
org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:820) at
org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:690) at
org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:659) at
org.apache.ignite.Ignition.start(Ignition.java:346) at
org.apache.ignite.examples.ExampleNodeStartup.main(ExampleNodeStartup.java:38)Caused
by: class org.apache.ignite.IgniteCheckedException: Failed to find class with
given class loader for unmarshalling (make sure same versions of all classes
are available on all nodes or enable peer-class-loading)
[clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2,
cls=org.apache.ignite.internal.processors.cache.GridCacheProcessor$LocalAffinityFunction]
at
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:129)
at
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:93)
at
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager.readCacheData(FilePageStoreManager.java:961)
... 18 moreCaused by: java.lang.ClassNotFoundException:
org.apache.ignite.internal.processors.cache.GridCacheProcessor$LocalAffinityFunction
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at
java.lang.ClassLoader.loadClass(ClassLoader.java:424) at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at
java.lang.ClassLoader.loadClass(ClassLoader.java:357) at
java.lang.Class.forName0(Native Method) at
java.lang.Class.forName(Class.java:348) at
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8870) at
org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.resolveClass(JdkMarshallerObjectInputStream.java:59)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1826) at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713) at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2000) at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535) at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2245) at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2169) at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2027) at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535) at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2245) at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2169) at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2027) at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535) at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:422) at
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:124)
... 20 more{noformat}
The issue is caused by IGNITE-12656. To be more precise, the root cause of
{{ClassNotFoundException}} is the fact of moving {{LocalAffinityFunction}} to a
separate class.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)