1 Reply Latest reply on Oct 2, 2012 1:31 PM by mircea.markus

    StateTransferInProgressException: Timed out waiting for the state transfer lock, state transfer in progress for view

    sebastiantusk

      Hi,

       

      in an eight node cluster setup with a distributed cache I get the following exception. The exception repeats for every Put until I restart the node.

       

      org.infinispan.statetransfer.StateTransferInProgressException: Timed out waiting for the state transfer lock, state transfer in progress for view 43

              at org.infinispan.interceptors.StateTransferLockInterceptor.signalStateTransferInProgress(StateTransferLockInterceptor.java:199)

              at org.infinispan.interceptors.StateTransferLockInterceptor.handleWriteCommand(StateTransferLockInterceptor.java:176)

              at org.infinispan.interceptors.StateTransferLockInterceptor.visitPutKeyValueCommand(StateTransferLockInterceptor.java:151)

              at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)

              at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)

              at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:124)

              at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)

              at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)

              at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:130)

              at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:61)

              at org.infinispan.interceptors.IsMarshallableInterceptor.visitPutKeyValueCommand(IsMarshallableInterceptor.java:108)

              at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)

              at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)

              at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:130)

              at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:89)

              at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:61)

              at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:76)

              at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:345)

              at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:941)

              at org.infinispan.CacheImpl.put(CacheImpl.java:654)

              at org.infinispan.CacheImpl.put(CacheImpl.java:646)

              at org.infinispan.CacheSupport.put(CacheSupport.java:52)

      [..]

       

      The relevant StateTransferLockImpl object has runningWritesCount == 0 and writesBlocked == true. My cache configuration looks like this.

       

      <namedCache name="distributed">

          <jmxStatistics enabled="true" />

             

          <clustering mode="dist">

              <stateTransfer fetchInMemoryState="false" timeout="20000" />

              <async />

          </clustering>

          <locking isolationLevel="READ_COMMITTED"

              lockAcquisitionTimeout="15000" useLockStriping="false" />

                 

          <eviction maxEntries="10000" strategy="LRU" />

          <expiration maxIdle="3600000" wakeUpInterval="5000"/>

          <storeAsBinary storeKeysAsBinary="true" storeValuesAsBinary="false" enabled="false" />

      </namedCache>


      I do not see any obvious problems. There is no high load or a network issue. I know that the exception is expected after a node joins. But it should stabilize after a while. Anything I can do to fix this?

       

      Regards, Sebastian