ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Ozerov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (IGNITE-9133) MVCC: Proper empty DHT transactions handling.
Date Wed, 10 Oct 2018 11:29:00 GMT

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

Vladimir Ozerov updated IGNITE-9133:
------------------------------------
    Ignite Flags:   (was: Docs Required)

> MVCC: Proper empty DHT transactions handling.
> ---------------------------------------------
>
>                 Key: IGNITE-9133
>                 URL: https://issues.apache.org/jira/browse/IGNITE-9133
>             Project: Ignite
>          Issue Type: Bug
>          Components: mvcc, sql
>            Reporter: Roman Kondakov
>            Assignee: Vladimir Ozerov
>            Priority: Major
>             Fix For: 2.7
>
>
> In the cases when DHT transaction is empty (i.e. no keys were enlisted) after the enlist
step, we need to rollback local DHT transaction to exclude it from the further transaction
flow in order to performance increasing.
> An ordinary Dht tx rollback {{GridDhtTxLocal#rollbackDhtLocalAsync}} is not suitable
in this situation because it adds tx to {{IgniteTxManager#completedVersHashMap}} which is
unacceptable because this action prevents possible Dht transaction creation if the next tx
statements enlist some keys at this node in the future. As well as direct tx map cleaning
by means of {{IgniteTxManager#rollbackTx(tx, true, true)}} is not an aid because leads to
grid hanging due to undiscovered reasons.  In order to reproduce hanging you need to reapply
commit d231a81 and run {{CacheMvccPartitionedSqlCoordinatorFailoverTest}}. Example of hanged
thread stack is listed below.
> Our goal is the proper Dht transaction rollback without adding it to {{IgniteTxManager#completedVersHashMap.}}
> {code:java}
> Thread [name="writer-2", id=2281, state=WAITING, blockCnt=40, waitCnt=10260]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
>         at o.a.i.i.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:177)
>         at o.a.i.i.util.future.GridFutureAdapter.get(GridFutureAdapter.java:140)
>         at o.a.i.i.processors.query.h2.DmlStatementsProcessor.executeUpdateStatement(DmlStatementsProcessor.java:560)
>         at o.a.i.i.processors.query.h2.DmlStatementsProcessor.updateSqlFields(DmlStatementsProcessor.java:185)
>         at o.a.i.i.processors.query.h2.DmlStatementsProcessor.updateSqlFieldsDistributed(DmlStatementsProcessor.java:358)
>         at o.a.i.i.processors.query.h2.IgniteH2Indexing.doRunPrepared(IgniteH2Indexing.java:2132)
>         at o.a.i.i.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:2083)
>         at o.a.i.i.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2139)
>         at o.a.i.i.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2134)
>         at o.a.i.i.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
>         at o.a.i.i.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2682)
>         at o.a.i.i.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2148)
>         at o.a.i.i.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:668)
>         at o.a.i.i.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:619)
>         at o.a.i.i.processors.cache.GatewayProtectedCacheProxy.query(GatewayProtectedCacheProxy.java:388)
>         at o.a.i.i.processors.cache.mvcc.CacheMvccAbstractTest.removeSql(CacheMvccAbstractTest.java:832)
>         at o.a.i.i.processors.cache.mvcc.CacheMvccAbstractTest.access$400(CacheMvccAbstractTest.java:104)
>         at o.a.i.i.processors.cache.mvcc.CacheMvccAbstractTest$2.apply(CacheMvccAbstractTest.java:494)
>         at o.a.i.i.processors.cache.mvcc.CacheMvccAbstractTest$2.apply(CacheMvccAbstractTest.java:401)
>         at o.a.i.i.processors.cache.mvcc.CacheMvccAbstractTest$9.call(CacheMvccAbstractTest.java:1294)
>         at o.a.i.i.processors.cache.mvcc.CacheMvccAbstractTest$9.call(CacheMvccAbstractTest.java:1289)
>         at o.a.i.testframework.GridTestThread.run(GridTestThread.java:86)
> {code}
>  



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

Mime
View raw message