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)

Reply via email to