[
https://issues.jboss.org/browse/ISPN-2240?page=com.atlassian.jira.plugin....
]
Robert Stupp commented on ISPN-2240:
------------------------------------
This issue is still reproducable with 5.3.0.CR1
{{org.infinispan.util.concurrent.TimeoutException: Unable to acquire lock after [10
seconds] on key [.........] for requestor [Thread[remote-thread-27,5,main]]! Lock held by
[Thread[remote-thread-23,5,main]]}}
Current stack traces are:
{noformat}
2013-06-04 18:09:46,682 ERROR [org.infinispan.interceptors.InvocationContextInterceptor]
(mpx-request-Invocation-8100-87) ISPN000136: Execution error:
org.infinispan.util.concurrent.TimeoutException: Node ................. timed out
at
org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:195)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:531)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:303)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.distribution.BaseDistributionInterceptor.handleNonTxWriteCommand(BaseDistributionInterceptor.java:158)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.distribution.NonTxDistributionInterceptor.visitPutKeyValueCommand(NonTxDistributionInterceptor.java:91)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.distribution.L1NonTxInterceptor.handleDataWriteCommand(L1NonTxInterceptor.java:152)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.distribution.L1NonTxInterceptor.visitPutKeyValueCommand(L1NonTxInterceptor.java:108)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.distribution.L1NonTxInterceptor.handleDataWriteCommand(L1NonTxInterceptor.java:152)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.distribution.L1NonTxInterceptor.visitPutKeyValueCommand(L1NonTxInterceptor.java:108)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:290)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:157)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitPutKeyValueCommand(AbstractLockingInterceptor.java:68)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:54)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:54)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:216)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:194)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:136)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:133)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:54)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1337)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.CacheImpl.putInternal(CacheImpl.java:898)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.CacheImpl.put(CacheImpl.java:890)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.CacheImpl.put(CacheImpl.java:883)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.CacheImpl.put(CacheImpl.java:234)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
{noformat}
{noformat}
2013-06-04 18:08:56,815 ERROR [org.infinispan.interceptors.InvocationContextInterceptor]
(mpx-request-Invocation-8100-52) ISPN000136: Execution error:
org.infinispan.remoting.RemoteException: ISPN000217: Received exception from
.................., see cause for remote stack trace
at
org.infinispan.remoting.transport.AbstractTransport.checkResponse(AbstractTransport.java:70)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processSingleCall(CommandAwareRpcDispatcher.java:381)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:188)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:531)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:303)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.distribution.BaseDistributionInterceptor.handleNonTxWriteCommand(BaseDistributionInterceptor.java:158)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.distribution.NonTxDistributionInterceptor.visitPutKeyValueCommand(NonTxDistributionInterceptor.java:91)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.distribution.L1NonTxInterceptor.handleDataWriteCommand(L1NonTxInterceptor.java:152)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.distribution.L1NonTxInterceptor.visitPutKeyValueCommand(L1NonTxInterceptor.java:108)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:290)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:157)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitPutKeyValueCommand(AbstractLockingInterceptor.java:68)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:54)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:54)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:216)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:194)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:136)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:133)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:54)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1337)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.CacheImpl.putInternal(CacheImpl.java:898)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.CacheImpl.put(CacheImpl.java:890)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.CacheImpl.put(CacheImpl.java:883)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.CacheImpl.put(CacheImpl.java:234)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
...
Caused by: org.infinispan.util.concurrent.TimeoutException: Unable to acquire lock after
[10 seconds] on key [.........] for requestor [Thread[remote-thread-27,5,main]]! Lock held
by [Thread[remote-thread-23,5,main]]
at
org.infinispan.util.concurrent.locks.LockManagerImpl.lock(LockManagerImpl.java:214)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.util.concurrent.locks.LockManagerImpl.acquireLockNoCheck(LockManagerImpl.java:197)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.locking.AbstractLockingInterceptor.lockKey(AbstractLockingInterceptor.java:149)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.locking.AbstractLockingInterceptor.lockKey(AbstractLockingInterceptor.java:145)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitPutKeyValueCommand(AbstractLockingInterceptor.java:69)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:54)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:134)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:54)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:216)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:194)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:136)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:133)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:120)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:54)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:83)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:61)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:70)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.remoting.InboundInvocationHandlerImpl.handleInternal(InboundInvocationHandlerImpl.java:122)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.remoting.InboundInvocationHandlerImpl.access$000(InboundInvocationHandlerImpl.java:68)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
org.infinispan.remoting.InboundInvocationHandlerImpl$2.run(InboundInvocationHandlerImpl.java:194)
[infinispan-core-5.3.0.CR1.jar:5.3.0.CR1]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
[rt.jar:1.6.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
[rt.jar:1.6.0_45]
... 1 more
{noformat}
Per-key lock container leads to superfluous TimeoutExceptions on
concurrent access to same key
----------------------------------------------------------------------------------------------
Key: ISPN-2240
URL:
https://issues.jboss.org/browse/ISPN-2240
Project: Infinispan
Issue Type: Bug
Components: Locking and Concurrency
Affects Versions: 5.1.6.FINAL, 5.1.x
Reporter: Robert Stupp
Assignee: Mircea Markus
Fix For: 5.3.0.Final
Attachments: ISPN-2240_fix_TimeoutExceptions.patch, somehow.zip
Hi,
I've encountered a lot of TimeoutExceptions just running a load test against an
infinispan cluster.
I tracked down the reason and found out, that the code in
org.infinispan.util.concurrent.locks.containers.AbstractPerEntryLockContainer#releaseLock()
causes these superfluous TimeoutExceptions.
A small test case (which just prints out timeouts, too late timeouts and
"paints" a lot of dots to the console - more dots/second on the console means
better throughput ;-)
In a short test I extended the class ReentrantPerEntryLockContainer and changed the
implementation of releaseLock() as follows:
{noformat}
public void releaseLock(Object lockOwner, Object key) {
ReentrantLock l = locks.get(key);
if (l != null) {
if (!l.isHeldByCurrentThread())
throw new IllegalStateException("Lock for [" + key + "]
not held by current thread " + Thread.currentThread());
while (l.isHeldByCurrentThread())
unlock(l, lockOwner);
if (!l.hasQueuedThreads())
locks.remove(key);
}
else
throw new IllegalStateException("No lock for [" + key +
']');
}
{noformat}
The main improvement is that locks are not removed from the concurrent map as long as
other threads are waiting on that lock.
If the lock is removed from the map while other threads are waiting for it, they may run
into timeouts and force TimeoutExceptions to the client.
The above methods "paints more dots per second" - means: it gives a better
throughput for concurrent accesses to the same key.
The re-implemented method should also fix some replication timeout exceptions.
Please, please add this to 5.1.7, if possible.
--
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