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

Sergey Kosarev updated IGNITE-10499:
------------------------------------
    Description: 
1 start a node
2 start workload (transactions ) on this node
3 stop node

problem that checkpointReadLock throws IgniteException - unchecked - so it does 
not catched anywhere
and brokes commit process GridNearTxLocal#finishFutfinishFutrure stays 
unfinished and
*morover it don't lsten prepareFut.*
 
stacktrace to follow
{code}
018-11-30 20:37:56,508][ERROR][tx-load-thread-4][IgniteTxAdapter] Prepare error
class org.apache.ignite.IgniteException: Failed to perform cache update: node 
is stopping.
        at 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.checkpointReadLock(GridCacheDatabaseSharedManager.java:1501)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onEntriesLocked(GridDhtTxPrepareFuture.java:371)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare0(GridDhtTxPrepareFuture.java:1295)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.mapIfLocked(GridDhtTxPrepareFuture.java:710)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare(GridDhtTxPrepareFuture.java:1100)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.prepareAsyncLocal(GridNearTxLocal.java:4064)
        at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareColocatedTx(IgniteTxHandler.java:292)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.prepareLocal(GridNearPessimisticTxPrepareFuture.java:258)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.preparePessimistic(GridNearPessimisticTxPrepareFuture.java:384)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.prepare(GridNearPessimisticTxPrepareFuture.java:188)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.prepareNearTxLocal(GridNearTxLocal.java:3709)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.commitNearTxLocalAsync(GridNearTxLocal.java:3761)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAdapter.commitTxAsync(GridCacheAdapter.java:4214)
        at 
org.apache.ignite.internal.processors.cache.GridCacheSharedContext.commitTxAsync(GridCacheSharedContext.java:1034)
        at 
org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.commit(TransactionProxyImpl.java:297)

Caused by: class org.apache.ignite.internal.NodeStoppingException: Failed to 
perform cache update: node is stopping.
{code}

so after commit caused Exception 
we are going to close as transaction Autoclosable
and wait forever on
{code}
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal#close(boolean)
in rollbackNearTxLocalAsync(clearThreadMap, false).get();
{code}
and we are locked GridKernalGateway#readLock 

and so ignite.stop thread hangs on trying to acquire GridKernalGateway#writeLock


  was:

1 start a node
2 start workload (transactions ) on this node
3 stop node

problem that checkpointReadLock throws IgniteException - unchecked - so it does 
not catched anywhere
and brokes commit process GridNearTxLocal#finishFutfinishFutrure stays 
unfinished and
*morover it don't lsten prepareFut.*
 
stacktrace to follow
{code}
018-11-30 20:37:56,508][ERROR][tx-load-thread-4][IgniteTxAdapter] Prepare error
class org.apache.ignite.IgniteException: Failed to perform cache update: node 
is stopping.
        at 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.checkpointReadLock(GridCacheDatabaseSharedManager.java:1501)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onEntriesLocked(GridDhtTxPrepareFuture.java:371)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare0(GridDhtTxPrepareFuture.java:1295)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.mapIfLocked(GridDhtTxPrepareFuture.java:710)
        at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare(GridDhtTxPrepareFuture.java:1100)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.prepareAsyncLocal(GridNearTxLocal.java:4064)
        at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareColocatedTx(IgniteTxHandler.java:292)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.prepareLocal(GridNearPessimisticTxPrepareFuture.java:258)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.preparePessimistic(GridNearPessimisticTxPrepareFuture.java:384)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.prepare(GridNearPessimisticTxPrepareFuture.java:188)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.prepareNearTxLocal(GridNearTxLocal.java:3709)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.commitNearTxLocalAsync(GridNearTxLocal.java:3761)
        at 
org.apache.ignite.internal.processors.cache.GridCacheAdapter.commitTxAsync(GridCacheAdapter.java:4214)
        at 
org.apache.ignite.internal.processors.cache.GridCacheSharedContext.commitTxAsync(GridCacheSharedContext.java:1034)
        at 
org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.commit(TransactionProxyImpl.java:297)
        at 
org.gridgain.grid.internal.processors.cache.database.txdr.AbstractReplicationTest.lambda$startTxLoad$2(AbstractReplicationTest.java:694)
        at 
org.apache.ignite.testframework.GridTestUtils$7.call(GridTestUtils.java:1300)
        at 
org.apache.ignite.testframework.GridTestThread.run(GridTestThread.java:84)
Caused by: class org.apache.ignite.internal.NodeStoppingException: Failed to 
perform cache update: node is stopping.
{code}

so after commit caused Exception 
we are going to close as transaction Autoclosable
and wait forever on
{code}
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal#close(boolean)
in rollbackNearTxLocalAsync(clearThreadMap, false).get();
{code}
and we are locked GridKernalGateway#readLock 

and so ignite.stop thread hangs on trying to acquire GridKernalGateway#writeLock



> Stopping ignite node when a transaction on this node in process of 
> commit(rollback) may cause hang up
> -----------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-10499
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10499
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Sergey Kosarev
>            Priority: Major
>
> 1 start a node
> 2 start workload (transactions ) on this node
> 3 stop node
> problem that checkpointReadLock throws IgniteException - unchecked - so it 
> does not catched anywhere
> and brokes commit process GridNearTxLocal#finishFutfinishFutrure stays 
> unfinished and
> *morover it don't lsten prepareFut.*
>  
> stacktrace to follow
> {code}
> 018-11-30 20:37:56,508][ERROR][tx-load-thread-4][IgniteTxAdapter] Prepare 
> error
> class org.apache.ignite.IgniteException: Failed to perform cache update: node 
> is stopping.
>         at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.checkpointReadLock(GridCacheDatabaseSharedManager.java:1501)
>         at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onEntriesLocked(GridDhtTxPrepareFuture.java:371)
>         at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare0(GridDhtTxPrepareFuture.java:1295)
>         at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.mapIfLocked(GridDhtTxPrepareFuture.java:710)
>         at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare(GridDhtTxPrepareFuture.java:1100)
>         at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.prepareAsyncLocal(GridNearTxLocal.java:4064)
>         at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.prepareColocatedTx(IgniteTxHandler.java:292)
>         at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.prepareLocal(GridNearPessimisticTxPrepareFuture.java:258)
>         at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.preparePessimistic(GridNearPessimisticTxPrepareFuture.java:384)
>         at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.prepare(GridNearPessimisticTxPrepareFuture.java:188)
>         at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.prepareNearTxLocal(GridNearTxLocal.java:3709)
>         at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.commitNearTxLocalAsync(GridNearTxLocal.java:3761)
>         at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.commitTxAsync(GridCacheAdapter.java:4214)
>         at 
> org.apache.ignite.internal.processors.cache.GridCacheSharedContext.commitTxAsync(GridCacheSharedContext.java:1034)
>         at 
> org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.commit(TransactionProxyImpl.java:297)
> Caused by: class org.apache.ignite.internal.NodeStoppingException: Failed to 
> perform cache update: node is stopping.
> {code}
> so after commit caused Exception 
> we are going to close as transaction Autoclosable
> and wait forever on
> {code}
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal#close(boolean)
> in rollbackNearTxLocalAsync(clearThreadMap, false).get();
> {code}
> and we are locked GridKernalGateway#readLock 
> and so ignite.stop thread hangs on trying to acquire 
> GridKernalGateway#writeLock



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

Reply via email to