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)