[infinispan-issues] [JBoss JIRA] (ISPN-2395) Key sorting done by the OptimisticLockingInterceptor is incompatible with the lock striping
Dan Berindei (Jira)
issues at jboss.org
Fri Mar 13 03:37:28 EDT 2020
[ https://issues.redhat.com/browse/ISPN-2395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dan Berindei closed ISPN-2395.
------------------------------
Fix Version/s: 8.0.0.Final
Resolution: Out of Date
Since ISPN-2849 {{DefaultLockManager}} acquires all of a transaction's keys atomically, so the sorting doesn't matter any more.
> Key sorting done by the OptimisticLockingInterceptor is incompatible with the lock striping
> -------------------------------------------------------------------------------------------
>
> Key: ISPN-2395
> URL: https://issues.redhat.com/browse/ISPN-2395
> Project: Infinispan
> Issue Type: Bug
> Components: Transactions
> Affects Versions: 5.1.5.FINAL, 5.1.6.FINAL, 5.1.7.Final, 5.2.0.Beta1
> Reporter: Nicolas Filotto
> Priority: Minor
> Fix For: 8.0.0.Final
>
> Attachments: TestLocking.java
>
>
> 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:
> {code}
> public int compare(Object k1, Object k2) {
> LockManager lm = cache.getLockManager();
> int result = lm.getLockId(key1) - lm.getLockId(k2);
> }
> {code}
> 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.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the infinispan-issues
mailing list