[infinispan-issues] [JBoss JIRA] (ISPN-2995) AtomicHashMap locking issue [optimistic]

Pedro Ruivo (JIRA) jira-events at lists.jboss.org
Thu Apr 4 14:24:42 EDT 2013


Pedro Ruivo created ISPN-2995:
---------------------------------

             Summary: AtomicHashMap locking issue [optimistic]
                 Key: ISPN-2995
                 URL: https://issues.jboss.org/browse/ISPN-2995
             Project: Infinispan
          Issue Type: Bug
          Components: Fine-grained API
    Affects Versions: 5.2.5.Final, 5.3.0.Alpha1
            Reporter: Pedro Ruivo
            Assignee: Mircea Markus


In OptimisticLockingInterceptor, we are collecting the composite keys from ApplyDeltaCommand is the key belongs to the node:

{code}
case ApplyDeltaCommand.COMMAND_ID:
  ApplyDeltaCommand command = (ApplyDeltaCommand) wc;
  if (cdl.localNodeIsOwner(command.getKey())) {
    Object[] compositeKeys = command.getCompositeKeys();
    set.addAll(Arrays.asList(compositeKeys));
  }
break;
{code}

However, when we are going to acquire the lock in the node if it is the primary owner:

{code}
protected final void lockAndRegisterBackupLock(TxInvocationContext ctx, Object key, long lockTimeout, boolean skipLocking) throws InterruptedException {
  if (cdl.localNodeIsPrimaryOwner(key)) {
    lockKeyAndCheckOwnership(ctx, key, lockTimeout, skipLocking);
  } else if (cdl.localNodeIsOwner(key)) {
    ctx.getCacheTransaction().addBackupLockForKey(key);
  }
}
{code}

The CompositeKey should always acquire the lock.

This is probably a bug. Add an unit test to verify that locking works as expected for AtomicHashMap.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the infinispan-issues mailing list