Details
Description
In the case of using near caches when we call clearAsync there is a chain future(see org.apache.ignite.internal.processors.cache.GridCacheAdapter#clearAsync(java.util.Set<? extends K>)) where we synchronously wait for execution of ClearTask on near nodes. This logic leads to the possibility of blocking all threads in the management pool (reproducer attached).
Stack trace of waiting thread:
"mgmt-#297%ignite.SizeTaskTest24%@5869" prio=5 tid=0x149 nid=NA waiting java.lang.Thread.State: WAITING at sun.misc.Unsafe.park(Unsafe.java:-1) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304) at org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:178) at org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:141) at org.apache.ignite.internal.processors.cache.GridCacheAdapter$8.applyx(GridCacheAdapter.java:1231) at org.apache.ignite.internal.processors.cache.GridCacheAdapter$8.applyx(GridCacheAdapter.java:1229) at org.apache.ignite.internal.util.lang.IgniteClosureX.apply(IgniteClosureX.java:38) at org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) at org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener$$$capture(GridFutureAdapter.java:399) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:-1) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:511) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:490) at org.apache.ignite.internal.processors.task.GridTaskWorker.finishTask(GridTaskWorker.java:1650) at org.apache.ignite.internal.processors.task.GridTaskWorker.finishTask(GridTaskWorker.java:1618) at org.apache.ignite.internal.processors.task.GridTaskWorker.reduce(GridTaskWorker.java:1194) at org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:976) at org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1155) at org.apache.ignite.internal.processors.task.GridTaskProcessor$JobMessageListener.onMessage(GridTaskProcessor.java:1390) at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1907) at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1528) at org.apache.ignite.internal.managers.communication.GridIoManager.access$5300(GridIoManager.java:242) at org.apache.ignite.internal.managers.communication.GridIoManager$9.execute(GridIoManager.java:1421) at org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:55) 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)
Attachments
Attachments
Issue Links
- links to