Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.4.1.SP13
    • Fix Version/s: None
    • Component/s: Locking
    • Labels:
      None

      Description

      5 nodes in JBoss Cache, pessimistic locking:
      /a/b/c1
      /a/b/c2
      /a/b/locked
      /a/b/c3
      /a/b/c4

      And the node "/a/b/locked" is write-locked by another thread. Then try to delete entire node "/a/b".
      Node.acquireAll successfully acquires write-lock on "/a/b/c1" and "/a/b/c2", but a TimeoutException occurs on "/a/b/locked" (which is expected).

      After this exception, locks on "/a/b/c1" and "/a/b/c2" are not released.

      Actually, Node.acquireAll shall return acquired locks, but in this case doesn't return anything but throws an exception. So, previously acquired locks are not in "cache.getLockTable()", and can't be released by UnlockInterceptor.

      TestCase attached.

        Gliffy Diagrams

          Attachments

          1. FT990Test.java
            2 kB
          2. Node.java
            20 kB
          3. PessimisticLockInterceptor.java
            21 kB

            Activity

              People

              • Assignee:
                dereed Dennis Reed
                Reporter:
                jp_grillon Jean-Pierre GRILLON
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: