Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-3055

Unreleased lock after node restart

    XMLWordPrintable

    Details

    • Steps to Reproduce:
      Hide

      Step 1. Run SimpleClusterWriter and SimpleClusterRead. Test rollback functionality.
      Step 2. Kill SimpleClusterWriter and start it again.
      Step 3. Make rollback.
      Step 4. Make normal commit which leads to acquired lock from the previous rollback?!?

      Will change old value => 724 to the new value => 513
      Apr 29, 2013 3:26:58 PM org.infinispan.interceptors.InvocationContextInterceptor handleAll
      ERROR: ISPN000136: Execution error
      org.infinispan.util.concurrent.TimeoutException: Unable to acquire lock after [1 seconds] on key [k] for requestor [DldGlobalTransaction

      {coinToss=5887910943873340717, lockIntention=k, affectedKeys=[], locksAtOrigin=[]}

      GlobalTransaction:<node1-15887>:3:remote]! Lock held by [DldGlobalTransaction

      {coinToss=-39459977763357633, lockIntention=null, affectedKeys=[], locksAtOrigin=[]}

      GlobalTransaction:<node1-15887>:2:remote]
      at org.infinispan.util.concurrent.locks.LockManagerImpl.lock(LockManagerImpl.java:213)
      at org.infinispan.util.concurrent.locks.LockManagerImpl.acquireLock(LockManagerImpl.java:186)

      Show
      Step 1. Run SimpleClusterWriter and SimpleClusterRead. Test rollback functionality. Step 2. Kill SimpleClusterWriter and start it again. Step 3. Make rollback. Step 4. Make normal commit which leads to acquired lock from the previous rollback?!? Will change old value => 724 to the new value => 513 Apr 29, 2013 3:26:58 PM org.infinispan.interceptors.InvocationContextInterceptor handleAll ERROR: ISPN000136: Execution error org.infinispan.util.concurrent.TimeoutException: Unable to acquire lock after [1 seconds] on key [k] for requestor [DldGlobalTransaction {coinToss=5887910943873340717, lockIntention=k, affectedKeys=[], locksAtOrigin=[]} GlobalTransaction:<node1-15887>:3:remote]! Lock held by [DldGlobalTransaction {coinToss=-39459977763357633, lockIntention=null, affectedKeys=[], locksAtOrigin=[]} GlobalTransaction:<node1-15887>:2:remote] at org.infinispan.util.concurrent.locks.LockManagerImpl.lock(LockManagerImpl.java:213) at org.infinispan.util.concurrent.locks.LockManagerImpl.acquireLock(LockManagerImpl.java:186)

      Description

      Using dummy transaction manager I was able to produce locks that are not released. The same behavior can be reproduced with Glassfish AS 3.1.1 using its own TM.

        Attachments

        1. simple_cluster_node1.xml
          1 kB
        2. simple_cluster_node2.xml
          1 kB
        3. SimpleClusterRead.java
          0.7 kB
        4. SimpleClusterWriter.java
          2 kB

          Issue Links

            Activity

              People

              Assignee:
              pruivo Pedro Ruivo
              Reporter:
              dpandulev Deyan Pandulev (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: