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

Alexey Goncharuk updated IGNITE-7324:
-------------------------------------
    Labels: MakeTeamcityGreenAgain  (was: )

> AssertionError Entry cannot become obsolete when DHT local candidate is added 
> in deadlock detection suite
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-7324
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7324
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.3
>            Reporter: Alexey Goncharuk
>            Assignee: Alexey Goncharuk
>            Priority: Major
>              Labels: MakeTeamcityGreenAgain
>             Fix For: 2.5
>
>
> I observed this assertion in deadlock detection suite on TC:
> {code}
> [12:11:30]W:           [org.apache.ignite:ignite-core] 
> java.lang.AssertionError: Entry cannot become obsolete when DHT local 
> candidate is added [e=GridDhtCacheEntry [rdrs=[], part=39, 
> super=GridDistributedCacheEntry [super=GridCacheMapEntry 
> [key=KeyCacheObjectImpl [part=39, val=39, hasValBytes=true], val=null, 
> startVer=1514452286919, ver=GridCacheVersion [topVer=125932251, 
> order=1514452286919, nodeOrder=2], hash=39, 
> extras=GridCacheObsoleteEntryExtras [obsoleteVer=GridCacheVersion 
> [topVer=2147483647, order=0, nodeOrder=0]], flags=2]]], 
> ex=org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException]
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.map(GridDhtLockFuture.java:902)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onOwnerChanged(GridDhtLockFuture.java:655)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.GridCacheMvccManager.notifyOwnerChanged(GridCacheMvccManager.java:226)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.GridCacheMvccManager.access$200(GridCacheMvccManager.java:80)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.GridCacheMvccManager$3.onOwnerChanged(GridCacheMvccManager.java:163)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry.checkOwnerChanged(GridCacheMapEntry.java:3709)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry.removeLock(GridDistributedCacheEntry.java:400)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry.removeLock(GridDhtCacheEntry.java:329)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.distributed.GridDistributedCacheEntry.txUnlock(GridDistributedCacheEntry.java:665)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.unlockMultiple(IgniteTxManager.java:1672)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.rollbackTx(IgniteTxManager.java:1287)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.userRollback(IgniteTxLocalAdapter.java:980)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.localFinish(GridNearTxLocal.java:3080)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture.finish(GridNearTxFinishFuture.java:418)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.rollbackNearTxLocalAsync(GridNearTxLocal.java:3316)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.access$4900(GridNearTxLocal.java:122)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$26.run(GridNearTxLocal.java:4129)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6673)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.processors.closure.GridClosureProcessor$1.body(GridClosureProcessor.java:827)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [12:11:30]W:           [org.apache.ignite:ignite-core]        at 
> java.lang.Thread.run(Thread.java:745)
> {code}
> It looks like the lock future has acquired one lock and was waiting for 
> another lock. When the future timed-out, the previous lock was already 
> removed, but the next lock was successfully acquired, which led to the 
> assertion above.
> My suggestion would be to give up in the mapping code if the future has timed 
> out or if we got entry removed exception



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

Reply via email to