Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-16777

clearAsync could lead to a block of the management pool

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.12
    • 2.14
    • None
    • Fixed an issue that could lead to a block of the management pool in case of using clearSync
    • Release Notes Required

    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

        1. ClearAsyncNearCachesTest.java
          2 kB
          Maria Makedonskaya

        Issue Links

          Activity

            People

              Denis Chudov Denis Chudov
              makedonskaya Maria Makedonskaya
              Slava Koptilin Slava Koptilin
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 10m
                  1h 10m