You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Magda (JIRA)" <ji...@apache.org> on 2016/06/28 12:16:57 UTC

[jira] [Created] (IGNITE-3386) Reentrant lock is lost when lock owner leaves topology

Denis Magda created IGNITE-3386:
-----------------------------------

             Summary: Reentrant lock is lost when lock owner leaves topology
                 Key: IGNITE-3386
                 URL: https://issues.apache.org/jira/browse/IGNITE-3386
             Project: Ignite
          Issue Type: Bug
    Affects Versions: 1.6
            Reporter: Denis Magda
            Assignee: Vladisav Jelisavcic
            Priority: Critical
             Fix For: 1.7


If to create a lock with the following configuration 
{{IgniteLock lock = ignite.reentrantLock("lock", true, true, true);}}

and perform the following steps below

1) run the first node using {{LockIssue}} that is attached;
2) run the second node using {{LockIssue}};
3) stop the first node.

you will get the following exception on the second node side (the lock information will be lost and the second node won't recreate it ignore "create=true" flag):

{code}
SEVERE: <ignite-atomics-sys-cache> Failed to compare and set: o.a.i.i.processors.datastructures.GridCacheLockImpl$Sync$1@67aea87d
class org.apache.ignite.IgniteCheckedException: Failed to find reentrant lock with given name: test
  at org.apache.ignite.internal.processors.datastructures.GridCacheLockImpl$Sync$1.call(GridCacheLockImpl.java:525)
  at org.apache.ignite.internal.processors.datastructures.GridCacheLockImpl$Sync$1.call(GridCacheLockImpl.java:518)
  at org.apache.ignite.internal.processors.cache.GridCacheUtils$23.call(GridCacheUtils.java:1648)
  at org.apache.ignite.internal.processors.cache.GridCacheUtils.outTx(GridCacheUtils.java:891)
  at org.apache.ignite.internal.processors.datastructures.GridCacheLockImpl$Sync.compareAndSetGlobalState(GridCacheLockImpl.java:517)
  at org.apache.ignite.internal.processors.datastructures.GridCacheLockImpl$Sync.tryAcquire(GridCacheLockImpl.java:400)
  at org.apache.ignite.internal.processors.datastructures.GridCacheLockImpl$Sync.tryAcquire(GridCacheLockImpl.java:437)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:861)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197)
  at org.apache.ignite.internal.processors.datastructures.GridCacheLockImpl$Sync.lock(GridCacheLockImpl.java:432)
  at org.apache.ignite.internal.processors.datastructures.GridCacheLockImpl.lock(GridCacheLockImpl.java:1201)
  at com.bfm.amc.loaders.server.StartIgniteServer.main(StartIgniteServer.java:15)
{code}

However the issue is not 100% reproduced but it should be clear from the logs what happens.



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