Igor Belyakov created IGNITE-14584: -------------------------------------- Summary: Server node fails on remote filter with static initializer deployment if client disconnects Key: IGNITE-14584 URL: https://issues.apache.org/jira/browse/IGNITE-14584 Project: Ignite Issue Type: Bug Affects Versions: 2.10 Reporter: Igor Belyakov Assignee: Igor Belyakov
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: {code:java} public class TestClass { static { TestSubClass testSubClass = new TestSubClass(); } } public class TestSubClass { } {code} 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: {code:java} [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 moreCaused 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{code} -- This message was sent by Atlassian Jira (v8.3.4#803005)