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

Key sorting done by the OptimisticLockingInterceptor is incompatible with the lock striping

    XMLWordPrintable

Details

    • Bug
    • Resolution: Obsolete
    • Minor
    • 8.0.0.Final
    • 5.1.5.FINAL, 5.1.6.FINAL, 5.1.7.Final, 5.2.0.Beta1
    • Transactions
    • None

    Description

      In ISPN 5.0, you provided a workaround allowing us to sort the keys ourself in order to prevent deadlocks even in case we enable the lock striping (more details here ISPN-993), thanks to this workaround we could write a simple key comparator (that works with lock striping enabled or not) as next:

      public int compare(Object k1, Object k2) {
        LockManager lm = cache.getLockManager();
        int result = lm.getLockId(key1) - lm.getLockId(k2);
      }
      

      Starting from ISPN 5.1 (ISPN-1132), the keys are sorted automatically by ISPN however unfortunately what has been done is incompatible with lock striping, indeed the keys are sorted regardless the lock distribution which is a mistake since we actually expect the keys to be sorted according to the corresponding locks and not to the keys themselves otherwise deadlock can still occur.

      As attached file, you will find a test case that shows the issue.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              nfilotto Nicolas Filotto (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: