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

Unreleased lock after node restart

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 5.3.0.Beta2, 5.3.0.Final
    • 5.2.1.Final
    • None
    • 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)

      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.

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

            pruivo@redhat.com Pedro Ruivo
            dpandulev Deyan Pandulev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: