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

Semen Boikov resolved IGNITE-4411.
----------------------------------
    Resolution: Fixed

Test uses IgniteAtomicLong to work in multi-jvm mode, so fixed it to run 
increment from another thread and use 'waitForCondition'.

> Deadlock with striped pool
> --------------------------
>
>                 Key: IGNITE-4411
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4411
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>            Reporter: Yakov Zhdanov
>            Assignee: Semen Boikov
>
> I think we need to rewrite test either to use static JVM local atomic long or 
> submit cache atomic long increment closure to parallel thread and change 
> value check to cycle with condition wait
> {noformat}
> [15:49:29,501][WARN 
> ][grid-timeout-worker-#14968%replicated.GridCachePartitionedFairAffinityMultiNodeFullApiSelfTest0%][G]
>  >>> Possible starvation in striped pool: 
> sys-stripe-0-#14954%replicated.GridCachePartitionedFairAffinityMultiNodeFullApiSelfTest0%
> [Message closure [msg=GridIoMessage [plc=2, topic=TOPIC_CACHE, topicOrd=8, 
> ordered=false, timeout=0, skipOnTimeout=false, msg=GridNearTxPrepareResponse 
> [pending=[], futId=3cefb1ae851-45363875-1d17-4def-a565-ed045430c63a, 
> miniId=4cefb1ae851-45363875-1d17-4def-a565-ed045430c63a, 
> dhtVer=GridCacheVersion [topVer=92839713, time=1481359713993, 
> order=1481359711974, nodeOrder=4], writeVer=GridCacheVersion 
> [topVer=92839713, time=1481359713993, order=1481359711975, nodeOrder=4], 
> invalidParts=null, ownedVals=null, retVal=GridCacheReturn [v=null, 
> cacheObj=null, success=true, invokeRes=false, loc=true, cacheId=0], 
> clientRemapVer=null, super=GridDistributedTxPrepareResponse [txState=null, 
> err=null, super=GridDistributedBaseMessage [ver=GridCacheVersion 
> [topVer=92839713, time=1481359713993, order=1481359711973, nodeOrder=1], 
> committedVers=null, rolledbackVers=null, cnt=0, super=GridCacheMessage 
> [msgId=3399625, depInfo=GridDeploymentInfoBean 
> [clsLdrId=80eab1ae851-ad92cf87-855c-4c83-8d65-4df93a000003, depMode=SHARED, 
> userVer=0, locDepOwner=true, participants=null], err=null, skipPrepare=false, 
> cacheId=0, cacheId=0]]]]]]]
> deadlock: false
> completed: 101
> Thread 
> [name="sys-stripe-0-#14954%replicated.GridCachePartitionedFairAffinityMultiNodeFullApiSelfTest0%",
>  id=16497, state=WAITING, blockCnt=0, waitCnt=102]
>     Lock 
> [object=o.a.i.i.processors.cache.distributed.near.GridNearTxFinishFuture@42abf08e,
>  ownerName=null, ownerId=-1]
>         at sun.misc.Unsafe.park(Native Method)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>         at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
>         at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:964)
>         at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1282)
>         at 
> o.a.i.i.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:159)
>         at 
> o.a.i.i.util.future.GridFutureAdapter.get(GridFutureAdapter.java:119)
>         at 
> o.a.i.i.processors.cache.transactions.IgniteTxLocalAdapter.commit(IgniteTxLocalAdapter.java:567)
>         at 
> o.a.i.i.processors.datastructures.GridCacheAtomicLongImpl$3.call(GridCacheAtomicLongImpl.java:105)
>         at 
> o.a.i.i.processors.datastructures.GridCacheAtomicLongImpl$3.call(GridCacheAtomicLongImpl.java:91)
>         at 
> o.a.i.i.processors.cache.GridCacheUtils$21.call(GridCacheUtils.java:1628)
>         at 
> o.a.i.i.processors.cache.GridCacheUtils.outTx(GridCacheUtils.java:866)
>         at 
> o.a.i.i.processors.datastructures.GridCacheAtomicLongImpl.incrementAndGet(GridCacheAtomicLongImpl.java:250)
>         at 
> o.a.i.i.processors.cache.distributed.near.GridCachePartitionedMultiNodeFullApiSelfTest$SwapUnswapLocalListener.apply(GridCachePartitionedMultiNodeFullApiSelfTest.java:471)
>         at 
> o.a.i.i.processors.cache.distributed.near.GridCachePartitionedMultiNodeFullApiSelfTest$SwapUnswapLocalListener.apply(GridCachePartitionedMultiNodeFullApiSelfTest.java:452)
>         at 
> o.a.i.i.managers.eventstorage.GridEventStorageManager$UserListenerWrapper.onEvent(GridEventStorageManager.java:1183)
>         at 
> o.a.i.i.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:770)
>         at 
> o.a.i.i.managers.eventstorage.GridEventStorageManager.notifyListeners(GridEventStorageManager.java:755)
>         at 
> o.a.i.i.managers.eventstorage.GridEventStorageManager.record(GridEventStorageManager.java:295)
>         at 
> o.a.i.i.processors.cache.GridCacheEventManager.addEvent(GridCacheEventManager.java:297)
>         at 
> o.a.i.i.processors.cache.GridCacheSwapManager$4.apply(GridCacheSwapManager.java:763)
>         at 
> o.a.i.i.processors.cache.GridCacheSwapManager$4.apply(GridCacheSwapManager.java:745)
>         at 
> o.a.i.spi.swapspace.file.FileSwapSpaceSpi.remove(FileSwapSpaceSpi.java:427)
>         at 
> o.a.i.i.managers.swapspace.GridSwapSpaceManager.remove(GridSwapSpaceManager.java:239)
>         at 
> o.a.i.i.processors.cache.GridCacheSwapManager.readAndRemoveSwap(GridCacheSwapManager.java:745)
>         at 
> o.a.i.i.processors.cache.GridCacheSwapManager.readAndRemove(GridCacheSwapManager.java:717)
>         at 
> o.a.i.i.processors.cache.GridCacheSwapManager.readAndRemove(GridCacheSwapManager.java:889)
>         at 
> o.a.i.i.processors.cache.GridCacheMapEntry.unswap(GridCacheMapEntry.java:567)
>         at 
> o.a.i.i.processors.cache.GridCacheMapEntry.unswap(GridCacheMapEntry.java:503)
>         at 
> o.a.i.i.processors.cache.GridCacheMapEntry.unswap(GridCacheMapEntry.java:497)
>         at 
> o.a.i.i.processors.cache.transactions.IgniteTxManager.lockMultiple(IgniteTxManager.java:1635)
>         at 
> o.a.i.i.processors.cache.transactions.IgniteTxManager.prepareTx(IgniteTxManager.java:861)
>         at 
> o.a.i.i.processors.cache.distributed.GridDistributedTxRemoteAdapter.prepare(GridDistributedTxRemoteAdapter.java:398)
>         at 
> o.a.i.i.processors.cache.transactions.IgniteTxHandler.startRemoteTx(IgniteTxHandler.java:1527)
>         at 
> o.a.i.i.processors.cache.transactions.IgniteTxHandler.processDhtTxPrepareRequest(IgniteTxHandler.java:950)
>         at 
> o.a.i.i.processors.cache.transactions.IgniteTxHandler$5.apply(IgniteTxHandler.java:169)
>         at 
> o.a.i.i.processors.cache.transactions.IgniteTxHandler$5.apply(IgniteTxHandler.java:167)
>         at 
> o.a.i.i.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:831)
>         at 
> o.a.i.i.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:373)
>         at 
> o.a.i.i.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:295)
>         at 
> o.a.i.i.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:96)
>         at 
> o.a.i.i.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:240)
>         at 
> o.a.i.i.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1219)
>         at 
> o.a.i.i.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:847)
>         at 
> o.a.i.i.managers.communication.GridIoManager.access$2100(GridIoManager.java:109)
>         at 
> o.a.i.i.managers.communication.GridIoManager$6.run(GridIoManager.java:787)
>         at o.a.i.i.util.StripedExecutor$Stripe.run(StripedExecutor.java:428)
>         at java.lang.Thread.run(Thread.java:724)
> {noformat}



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

Reply via email to