You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vyacheslav Koptilin (JIRA)" <ji...@apache.org> on 2019/03/21 11:32:00 UTC

[jira] [Created] (IGNITE-11589) GridDhtPartitionsExchangeFuture remained incompleted in some circumstances

Vyacheslav Koptilin created IGNITE-11589:
--------------------------------------------

             Summary: GridDhtPartitionsExchangeFuture remained incompleted in some circumstances
                 Key: IGNITE-11589
                 URL: https://issues.apache.org/jira/browse/IGNITE-11589
             Project: Ignite
          Issue Type: Bug
    Affects Versions: 2.7
            Reporter: Vyacheslav Koptilin
            Assignee: Vyacheslav Koptilin
             Fix For: 2.8


{{GridDhtPartitionsExchangeFuture#onDone}} contains a piece of code that should be executed before {{GridFutureAdapter#onDone}} is called and so,
 in case of an exception is thrown by that code, exchange future is not completed and, therefore, it may cause a deadlock.

the following stack trace can be used as an example of that behavior:
{noformat}
[GridDhtPartitionsExchangeFuture] Failed to reinitialize local partitions (rebalancing will be stopped): GridDhtPartitionExchangeId [...msg=Node left: TcpDiscoveryNode [ ], type=NODE_LEFT]
class org.apache.ignite.IgniteException: null
at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.detectLostPartitions(GridDhtPartitionsExchangeFuture.java:3152)
at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onDone(GridDhtPartitionsExchangeFuture.java
at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.finishExchangeOnCoordinator(GridDhtPartitionsExchangeFuture.java:3549)
at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onAllReceived(GridDhtPartitionsExchangeFuture.java:3301)
at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.distributedExchange(GridDhtPartitionsExchangeFuture.java:1516)
at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:849)
at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2878)
at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2727)
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
at java.lang.Thread.run(Thread.java:745)
Caused by: class org.apache.ignite.internal.IgniteInterruptedCheckedException: null
at org.apache.ignite.internal.util.IgniteUtils.doInParallel(IgniteUtils.java:10846)
at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.detectLostPartitions(GridDhtPartitionsExchangeFuture.java:3135)
... 9 more
Caused by: java.lang.InterruptedException
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:404)
at java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.ignite.internal.util.IgniteUtils$Batch.result(IgniteUtils.java:10947)
at org.apache.ignite.internal.util.IgniteUtils.doInParallel(IgniteUtils.java:10836)
... 10 more{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)