Details
-
Bug
-
Resolution: Done
-
Major
-
6.0.2.Final
-
None
Description
Sometimes when certain thread executes commands in org.infinispan.cache.impl.CacheImpl#executeCommandAndCommitIfNeeded it can get a java.lang.Throwable and leave an object in cache locked.
In my case thread was faced with java.lang.ThreadDeath and I was unable to get certain object from cache.
Here is part of stacktrace
org.infinispan.commons.CacheException: java.lang.ThreadDeath at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:341) at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1306) at org.infinispan.CacheImpl.removeInternal(CacheImpl.java:326) at org.infinispan.CacheImpl.remove(CacheImpl.java:320) at org.infinispan.CacheImpl.remove(CacheImpl.java:315) at org.hibernate.cache.infinispan.access.PutFromLoadValidator.releasePutFromLoadLock(PutFromLoadValidator.java:264) at org.hibernate.cache.infinispan.access.TransactionalAccessDelegate.putFromLoad(TransactionalAccessDelegate.java:149) at org.hibernate.cache.infinispan.entity.TransactionalAccess.putFromLoad(TransactionalAccess.java:76) at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:221) at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:144) at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1115) at org.hibernate.loader.Loader.processResultSet(Loader.java:973) at org.hibernate.loader.Loader.doQuery(Loader.java:921) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:325) at org.hibernate.loader.Loader.loadEntity(Loader.java:2149) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:78)