Details
-
Bug
-
Resolution: Done
-
Major
-
9.4.6.Final, 10.0.0.Beta3
-
None
Description
BasicComponentRegistryImpl keeps track of which threads are currently wiring or starting components in order to make the error messages more user-friendly. In rare cases, however, the tracking information is not updated after a failure, and a spurious dependency cycle is logged:
14:56:09,073 WARN [org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler] (jgroups-30,vlhebwmpr04-infinispan1) ISPN000071: Caught exception when handling command SingleRpcCommand{cacheName='offer-templates', command=PutKeyValueCommand{key=WrappedByteArray{bytes=[B0x0101290B033E0931..[16], hashCode=-798243737}, value=WrappedByteArray{bytes=[B0x01012A2962030409..[10856], hashCode=0}, flags=[IGNORE_RETURN_VALUES], commandInvocationId=CommandInvocation:vlkrbwmpr01-infinispan1:1968005, putIfAbsent=false, valueMatcher=MATCH_ALWAYS, metadata=EmbeddedExpirableMetadata{lifespan=162205431146, maxIdle=-1, version=NumericVersion{version=159314845408592057}}, successful=true, topologyId=2329}}: org.infinispan.commons.CacheConfigurationException: Dependency cycle detected, please use ComponentRef<T> to break the cycle in path org.infinispan.interceptors.AsyncInterceptorChain (a org.infinispan.interceptors.impl.AsyncInterceptorChainImpl) << org.infinispan.expiration.impl.InternalExpirationManager (a org.infinispan.expiration.impl.ClusterExpirationManager) << org.infinispan.container.impl.InternalDataContainer (a org.infinispan.container.impl.BoundedSegmentedDataContainer) << org.infinispan.commands.CommandsFactory (a org.infinispan.commands.CommandsFactoryImpl) << org.infinispan.distribution.L1Manager (a org.infinispan.distribution.impl.L1ManagerImpl) << org.infinispan.distribution.RemoteValueRetrievedListener (a org.infinispan.factories.impl.ComponentAlias) << org.infinispan.interceptors.distribution.NonTxDistributionInterceptor (a org.infinispan.interceptors.distribution.NonTxDistributionInterceptor) << org.infinispan.interceptors.AsyncInterceptorChain (a org.infinispan.interceptors.impl.AsyncInterceptorChainImpl) at org.infinispan.factories.impl.BasicComponentRegistryImpl.awaitWrapperState(BasicComponentRegistryImpl.java:646) at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:498) at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:714) at org.infinispan.commands.CommandsFactoryImpl.initializeReplicableCommand(CommandsFactoryImpl.java:397) at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.initializeCacheRpcCommand(GlobalInboundInvocationHandler.java:127) at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleCacheRpcCommand(GlobalInboundInvocationHandler.java:119) at org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleFromCluster(GlobalInboundInvocationHandler.java:74)