Alexey Platonov created IGNITE-9675:
---------------------------------------
Summary: Deadlock on Ignite:active() and stopping grid
simultaneously calling
Key: IGNITE-9675
URL: https://issues.apache.org/jira/browse/IGNITE-9675
Project: Ignite
Issue Type: Bug
Reporter: Alexey Platonov
Assignee: Alexey Platonov
There is deadlock on Ignite:active() and stopping grid simultaneously calling
# Trying to stop client node.
{code:java}
"main-ScalaTest-running-VisorInProcDriverSpec" #1 prio=5 os_prio=0
tid=0x00007f267800e800 nid=0x6574 sleeping[0x00007f2681b7e000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at
org.apache.ignite.internal.util.GridSpinReadWriteLock.writeLock(GridSpinReadWriteLock.java:206)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.onKernalStop(GridTaskProcessor.java:190)
at org.apache.ignite.internal.IgniteKernal.stop0(IgniteKernal.java:2135)
at org.apache.ignite.internal.IgniteKernal.stop(IgniteKernal.java:2083)
at
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(IgnitionEx.java:2590)
- locked <0x0000000797ecf7f8> (a
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance)
at
org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(IgnitionEx.java:2553)
at org.apache.ignite.internal.IgnitionEx.stop(IgnitionEx.java:374)
at org.apache.ignite.Ignition.stop(Ignition.java:225)
{code}
and
2. Execute task that tries to get ignite.active() state, which also executes
task
GridClusterStateProcessor.sendComputeCheckGlobalState(GridClusterStateProcessor.java:1086)
{code:java}
"mgmt-#2470" #2965 prio=5 os_prio=0 tid=0x00007f23fc001000 nid=0x730b waiting
on condition [0x00007f221f0ee000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:177)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:140)
at
org.apache.ignite.internal.AsyncSupportAdapter.saveOrGet(AsyncSupportAdapter.java:112)
at
org.apache.ignite.internal.IgniteComputeImpl.call(IgniteComputeImpl.java:786)
at
org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.sendComputeCheckGlobalState(GridClusterStateProcessor.java:1086)
at
org.apache.ignite.internal.processors.cluster.GridClusterStateProcessor.publicApiActiveState(GridClusterStateProcessor.java:177)
at
org.apache.ignite.internal.cluster.IgniteClusterImpl.active(IgniteClusterImpl.java:300)
at
org.apache.ignite.internal.visor.node.VisorNodeDataCollectorTask.reduce(VisorNodeDataCollectorTask.java:75)
at
org.gridgain.grid.internal.visor.node.VisorGridGainNodeDataCollectorTask.reduce0(VisorGridGainNodeDataCollectorTask.java:39)
at
org.gridgain.grid.internal.visor.node.VisorGridGainNodeDataCollectorTask.reduce0(VisorGridGainNodeDataCollectorTask.java:26)
at
org.apache.ignite.internal.visor.VisorMultiNodeTask.reduce(VisorMultiNodeTask.java:139)
at
org.apache.ignite.internal.processors.task.GridTaskWorker$6.call(GridTaskWorker.java:1139)
at
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6765)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.reduce(GridTaskWorker.java:1137)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:964)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1081)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor$JobMessageListener.onMessage(GridTaskProcessor.java:1316)
at
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1569)
at
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1197)
at
org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:127)
at
org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1093)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)