[
https://issues.apache.org/jira/browse/IGNITE-14584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Igor Belyakov updated IGNITE-14584:
-----------------------------------
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:
{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 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{code}
was:
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}
> 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
> Priority: Major
>
> 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 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{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)