You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Anton Vinogradov (JIRA)" <ji...@apache.org> on 2016/09/23 09:06:21 UTC

[jira] [Resolved] (IGNITE-3874) sync putIfAbsent forever blocked on all nodes after one node is stopped

     [ https://issues.apache.org/jira/browse/IGNITE-3874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Anton Vinogradov resolved IGNITE-3874.
--------------------------------------
    Resolution: Fixed

Found incorrect exceprion catch, fixed.

> sync putIfAbsent forever blocked on all nodes after one node is stopped
> -----------------------------------------------------------------------
>
>                 Key: IGNITE-3874
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3874
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Anton Vinogradov
>            Assignee: Anton Vinogradov
>             Fix For: 1.8
>
>
> First stacktrace:
> Failed to send prepare response for transaction:
> 	at org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:800)
> 	at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.sendPrepareResponse(GridDhtTxPrepareFuture.java:731)
> 	at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onDone(GridDhtTxPrepareFuture.java:690)
> 	at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onError(GridDhtTxPrepareFuture.java:457)
> 	at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.prepareAsync(GridDhtTxLocal.java:424)
> 	at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.prepareAsync(GridDhtTxLocal.java:298)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.prepare(IgniteTxLocalAdapter.java:594)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.salvageTx(IgniteTxManager.java:300)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.access$2200(IgniteTxManager.java:119)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager$NodeFailureTimeoutObject.onTimeout0(IgniteTxManager.java:2148)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager$NodeFailureTimeoutObject.access$2400(IgniteTxManager.java:2113)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager$NodeFailureTimeoutObject$2.run(IgniteTxManager.java:2188)
> 	at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6540)
> 	at org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:802)
> 	at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> Second:
> Failed to commit transaction:
> at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.finish(GridDhtTxLocalAdapter.java:750)
> 	at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.finish(GridDhtTxLocal.java:649)
> 	at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.commitAsync(GridDhtTxLocal.java:549)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.commit(IgniteTxLocalAdapter.java:585)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.salvageTx(IgniteTxManager.java:317)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.access$2200(IgniteTxManager.java:119)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager$NodeFailureTimeoutObject.onTimeout0(IgniteTxManager.java:2148)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager$NodeFailureTimeoutObject.access$2400(IgniteTxManager.java:2113)
> 	at org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager$NodeFailureTimeoutObject$2.run(IgniteTxManager.java:2188)
> 	at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6540)
> 	at org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:802)
> 	at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)	
> 	
> and finaly we see hanged 2pc TX with state MARKED_ROLLBACK.
> Rollback should happen, but doesn't happen.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)