Deadlock issues in client/server mode during massive updates or state-transfer if near caching is used in RHDG 7

Solution Verified - Updated -

Issue

  • If content of a cache is massive updated and the connected clients are using near-caching it happen randomly that the clients and servers are not longer responsive
  • Client get stuck during rebalancing and servers contain errors within the logfiles
    Most server show messages like this
ERROR [org.infinispan.interceptors.impl.InvocationContextInterceptor] (timeout-thread--p3-t1) ISPN000136: Error executing command PutKeyValueCommand, writing keys [WrappedByteArray{bytes=0x033..., hashCode=-1534131625}]: org.infinispan.util.concurrent.TimeoutException: Timed out waiting for topology 140
    at org.infinispan.interceptors.impl.BaseStateTransferInterceptor$CancellableRetry.run(BaseStateTransferInterceptor.java:309) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_181]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_181]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [rt.jar:1.8.0_181]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [rt.jar:1.8.0_181]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_181]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_181]
    at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_181]
One server shows a different one
ERROR [org.infinispan.interceptors.impl.InvocationContextInterceptor] (HotRod-hotrod-internalServerHandler-6-147) ISPN000136: Error executing command PutKeyValueCommand, writing keys [WrappedByteArray{bytes=0x033..., hashCode=-1534131625}]: org.infinispan.util.concurrent.TimeoutException: ISPN000299: Unable to acquire lock after 10 seconds for key WrappedByteArray{bytes=0x033..., hashCode=-1534131625} and requestor CommandInvocation:rmission-store-14-l0m0k:430907. Lock is held by CommandInvocation:rmission-store-14-l0m0k:430901
    at org.infinispan.util.concurrent.locks.impl.DefaultLockManager$KeyAwareExtendedLockPromise.lock(DefaultLockManager.java:239) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.locking.AbstractLockingInterceptor.lockAndRecord(AbstractLockingInterceptor.java:202) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitNonTxDataWriteCommand(AbstractLockingInterceptor.java:111) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitDataWriteCommand(NonTransactionalLockingInterceptor.java:39) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitPutKeyValueCommand(AbstractLockingInterceptor.java:77) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:79) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndHandle(BaseAsyncInterceptor.java:186) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:333) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:268) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:118) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:79) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndFinally(BaseAsyncInterceptor.java:153) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.impl.CacheMgmtInterceptor.updateStoreStatistics(CacheMgmtInterceptor.java:174) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.impl.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:160) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:79) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:126) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.impl.InvocationContextInterceptor.visitCommand(InvocationContextInterceptor.java:92) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.DDAsyncInterceptor.visitPutKeyValueCommand(DDAsyncInterceptor.java:59) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:79) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.DDAsyncInterceptor.visitCommand(DDAsyncInterceptor.java:49) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invoke(AsyncInterceptorChainImpl.java:281) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1582) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.cache.impl.CacheImpl.putInternal(CacheImpl.java:1208) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.cache.impl.CacheImpl.put(CacheImpl.java:1198) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.cache.impl.DecoratedCache.put(DecoratedCache.java:549) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.cache.impl.AbstractDelegatingAdvancedCache.put(AbstractDelegatingAdvancedCache.java:305) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.cache.impl.EncoderCache.put(EncoderCache.java:451) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.cache.impl.AbstractDelegatingAdvancedCache.put(AbstractDelegatingAdvancedCache.java:305) [infinispan-core-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.server.hotrod.CacheDecodeContext.put(CacheDecodeContext.java:424) [infinispan-server-hotrod-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.server.hotrod.ContextHandler.realRead(ContextHandler.java:66) [infinispan-server-hotrod-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at org.infinispan.server.hotrod.ContextHandler.lambda$channelRead0$0(ContextHandler.java:53) [infinispan-server-hotrod-8.5.0.Final-redhat-9.jar:8.5.0.Final-redhat-9]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_181]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_181]
    at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144) [netty-all-4.1.8.Final-redhat-2.jar:4.1.8.Final-redhat-2]
    at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_181]

Environment

  • Red Hat Data Grid (JDG)
    • 7.0, 7.1, 7.2

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content