You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Semen Boikov (JIRA)" <ji...@apache.org> on 2015/09/30 14:26:05 UTC

[jira] [Assigned] (IGNITE-1581) Synchronous cache operation can deadlock on async semaphore.

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

Semen Boikov reassigned IGNITE-1581:
------------------------------------

    Assignee: Semen Boikov

> Synchronous cache operation can deadlock on async semaphore.
> ------------------------------------------------------------
>
>                 Key: IGNITE-1581
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1581
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: cache
>    Affects Versions: ignite-1.4
>            Reporter: Vladimir Ozerov
>            Assignee: Semen Boikov
>            Priority: Critical
>             Fix For: ignite-1.5
>
>
> Problem can be reproduced as follows:
> 1) Set CacheConfiguration.setMaxConcurrentAsyncOperations() to a very small value, e.g. 3.
> 2) T1: Start PESSIMISTIC/REPEATABLE_READ tx and call Cache.get(1);
> 3) Start 3 other threads, initiate PESSIMISTIC/REPEATABLE_READ tx and call Cache.get(1) on them. They will stuck as expected.
> 4) T1: Call Cache.get(1) again. Instead of getting already locked value, thread is stuck on async semaphore acquire:
> {code}
> at sun.misc.Unsafe.park(Unsafe.java:-1)
> 	  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.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
> 	  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
> 	  at java.util.concurrent.Semaphore.acquire(Semaphore.java:317)
> 	  at org.apache.ignite.internal.processors.cache.GridCacheAdapter.asyncOpAcquire(GridCacheAdapter.java:4329)
> 	  at org.apache.ignite.internal.processors.cache.GridCacheAdapter.asyncOp(GridCacheAdapter.java:4203)
> 	  at org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache.getAllAsync(GridDhtColocatedCache.java:211)
> 	  at org.apache.ignite.internal.processors.cache.GridCacheAdapter.getAllAsync(GridCacheAdapter.java:4609)
> 	  at org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:4556)
> 	  at org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:1569)
> {code}



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