[
https://issues.apache.org/jira/browse/IGNITE-4806?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stanilovsky Evgeny resolved IGNITE-4806.
----------------------------------------
Resolution: Duplicate
> 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: Alexei Scherbakov
> Priority: Minor
> Attachments: reproduce.tar.gz
>
>
> 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.4.14#64029)