Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.10
-
None
-
None
-
Fixed an issue where exception in static initializer during remote filter deployment could lead to the server node failure.
-
Release Notes Required
Description
Cluster contains 1 server and 1 client node. PeerClassLoading is turned on.
1. Client node deploys CQ with remote filter, server node doesn't have classes required for remote filter in classpath. Remote filter should has a class with static initializer, which has a type that should be deployed:
public class TestClass { static { TestSubClass testSubClass = new TestSubClass(); } } public class TestSubClass { }
2. When TestSubClass deployment is in progress on the server node, the client node is stopped
3. The server node is unable to deploy TestSubClass and static initializer can't be finished, as result java.lang.ExceptionInInitializerError happens in discovery thread and server node fails:
[16:56:23,829][WARNING][disco-notifier-worker-#49%srv1%][GridDeploymentPerVersionStore] Failed to send class-loading request to node (is node alive?) [node=72513f9a-8053-410c-bc4f-aa4935e06661, clsName=TestSubClass, clsPath=TestSubClass.class, clsLdrId=1ca6c09f471-72513f9a-8053-410c-bc4f-aa4935e06661, parentClsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2][16:56:23,829][WARNING][disco-notifier-worker-#49%srv1%][GridDeploymentPerVersionStore] Failed to send class-loading request to node (is node alive?) [node=72513f9a-8053-410c-bc4f-aa4935e06661, clsName=TestSubClass, clsPath=TestSubClass.class, clsLdrId=1ca6c09f471-72513f9a-8053-410c-bc4f-aa4935e06661, parentClsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2] [16:56:23,829][SEVERE][disco-notifier-worker-#49%srv1%][GridDiscoveryManager] Exception in discovery notifier worker thread.java.lang.ExceptionInInitializerError 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:9066) at org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:325) at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:640) at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1755) at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1714) at org.apache.ignite.internal.binary.BinaryReaderExImpl.readField(BinaryReaderExImpl.java:1976) at org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:702) at org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:187) at org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:887) at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1762) at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1714) at org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:315) at org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:300) at org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:100) at org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80) at org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10573) at org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10602) at org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryDeployableObject.unmarshal(CacheContinuousQueryDeployableObject.java:96) at org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandler.p2pUnmarshal(CacheContinuousQueryHandler.java:1308) at org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryHandler.p2pUnmarshal(CacheContinuousQueryHandler.java:1283) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.processStartRequest(GridContinuousProcessor.java:1408) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor.access$400(GridContinuousProcessor.java:113) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$2.onCustomEvent(GridContinuousProcessor.java:205) at org.apache.ignite.internal.processors.continuous.GridContinuousProcessor$2.onCustomEvent(GridContinuousProcessor.java:196) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:655) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:526) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2741) at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2779) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119) at java.lang.Thread.run(Thread.java:748)Caused by: class org.apache.ignite.IgniteException: Failed to send class-loading request to node (is node alive?) [node=72513f9a-8053-410c-bc4f-aa4935e06661, clsName=TestSubClass, clsPath=TestSubClass.class, clsLdrId=1ca6c09f471-72513f9a-8053-410c-bc4f-aa4935e06661, parentClsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2] at org.apache.ignite.internal.managers.deployment.GridDeploymentClassLoader.sendClassRequest(GridDeploymentClassLoader.java:677) at org.apache.ignite.internal.managers.deployment.GridDeploymentClassLoader.findClass(GridDeploymentClassLoader.java:513) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at org.apache.ignite.internal.managers.deployment.GridDeploymentClassLoader.loadClass(GridDeploymentClassLoader.java:442) at TestClass.<clinit>(TestClass.java:22) ... 32 more Caused by: class org.apache.ignite.IgniteCheckedException: Failed to send class-loading request to node (is node alive?) [node=72513f9a-8053-410c-bc4f-aa4935e06661, clsName=TestSubClass, clsPath=TestSubClass.class, clsLdrId=1ca6c09f471-72513f9a-8053-410c-bc4f-aa4935e06661, parentClsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2] at org.apache.ignite.internal.managers.deployment.GridDeploymentClassLoader.sendClassRequest(GridDeploymentClassLoader.java:627) ... 36 more Suppressed: java.util.concurrent.TimeoutException at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.sendResourceRequest(GridDeploymentCommunication.java:476) at org.apache.ignite.internal.managers.deployment.GridDeploymentClassLoader.sendClassRequest(GridDeploymentClassLoader.java:611) ... 36 more
Attachments
Issue Links
- links to