Stanilovsky Evgeny created IGNITE-4806:
------------------------------------------
Summary: Infinite classLoading discovery process
Key: IGNITE-4806
URL: https://issues.apache.org/jira/browse/IGNITE-4806
Project: Ignite
Issue Type: Bug
Components: compute
Affects Versions: 1.8
Reporter: Stanilovsky Evgeny
Assignee: Stanilovsky Evgeny
Priority: Minor
Hello, i found infinite discovery class loading after very rare usage case.
In a nutshell to reproduce we need to run sequentially 3 different jvm
instances.
FirstNode instance simple start the grid.
SecondNode connect to grid, initialize custom classLoader, and run
IgniteCallable (JobA) wrapped into ComputeTask instance.
ThirdNode connect to grid, initialize custom classLoader, and run two
IgniteCallable (JobB, jobB2) wrapped into ComputeTask instances.
Finally we can observe JobA has been running in First and Second nodes, JobB
has been running in First, Second and Third nodes, while jobB2 starts infinite
class loading. We could see it simply looking into First Node thread dump:
{code}
"pub-#69%grid%" prio=10 tid=0x00007f9218015800 nid=0x3de5 runnable
[0x00007f9254176000]
java.lang.Thread.State: RUNNABLE
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Throwable.java:783)
- locked <0x00000007d43ced00> (a java.lang.ClassNotFoundException)
at java.lang.Throwable.<init>(Throwable.java:287)
at java.lang.Exception.<init>(Exception.java:84)
at
java.lang.ReflectiveOperationException.<init>(ReflectiveOperationException.java:75)
at
java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:82)
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
- locked <0x000000070c22fd08> (a java.lang.Object)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:278)
at
org.apache.ignite.internal.managers.deployment.GridDeploymentLocalStore.getDeployment(GridDeploymentLocalStore.java:191)
at
org.apache.ignite.internal.managers.deployment.GridDeploymentManager.getLocalDeployment(GridDeploymentManager.java:383)
at
org.apache.ignite.internal.managers.deployment.GridDeploymentClassLoader.findClass(GridDeploymentClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
- locked <0x000000070c0361e0> (a
org.apache.ignite.internal.managers.deployment.GridDeploymentClassLoader)
at
org.apache.ignite.internal.managers.deployment.GridDeploymentClassLoader.loadClass(GridDeploymentClassLoader.java:441)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:278)
at
org.apache.ignite.internal.managers.deployment.GridDeployment.deployedClass(GridDeployment.java:444)
at
org.apache.ignite.internal.managers.deployment.GridDeploymentPerVersionStore.getDeployment(GridDeploymentPerVersionStore.java:454)
at
org.apache.ignite.internal.managers.deployment.GridDeploymentManager.getGlobalDeployment(GridDeploymentManager.java:494)
at
org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:982)
at
org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1894)
at
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1082)
at
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:710)
at
org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:102)
at
org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:673)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
{code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)