TimeoutException thrown at line 46 is not caught and the lock never released. Hot Rod client will retry the same clear command on a different node, leading to a deadlock. core/src/main/java/org/infinispan/interceptors/locking/NonTransactionalLockingInterceptor.java ~~~ 39 @Override 40 public Object visitClearCommand(InvocationContext ctx, ClearCommand command) throws Throwable { 41 assertNonTransactional(ctx); 42 boolean skipLocking = hasSkipLocking(command); 43 long lockTimeout = getLockAcquisitionTimeout(command, skipLocking); 44 for (Object key: dataContainer.keySet()) { 45 if (shouldLock(key, command)) { 46 lockKey(ctx, key, lockTimeout, skipLocking); 47 } 48 } 49 try { 50 return invokeNextInterceptor(ctx, command); 51 } finally { 52 lockManager.unlockAll(ctx); 53 } 54 } ~~~
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune with any questions
Verified, thanks!