[infinispan-issues] [JBoss JIRA] (ISPN-2429) Cache restart still doesn't work properly for query-enabled caches
Marko Lukša (JIRA)
jira-events at lists.jboss.org
Mon Oct 22 11:37:02 EDT 2012
Marko Lukša created ISPN-2429:
---------------------------------
Summary: Cache restart still doesn't work properly for query-enabled caches
Key: ISPN-2429
URL: https://issues.jboss.org/browse/ISPN-2429
Project: Infinispan
Issue Type: Bug
Components: Querying
Affects Versions: 5.2.0.Beta2
Reporter: Marko Lukša
Assignee: Marko Lukša
In certain cases the restart of a stopped cache fails with "ConfigurationException: Detected interceptor of type [org.infinispan.query.backend.LocalQueryInterceptor] being added to the interceptor chain more than once!"
The error is caused by the fact that query.LifecycleManager stores the interceptor in Configuration.customInterceptorConfig on cache start, but doesn't remove it on cache stop.
This causes the interceptor to be added to the InterceptorChain automatically when the InterceptorChain is created (see InterceptorChainFactory.buildCustomInterceptors). When LifecycleManager then tries to add a new query interceptor to the chain, the exception is thrown.
In other cases, the order is reversed: the LifecycleManager is called first (before the InterceptorChainFactory). In these cases there is no error, because ICF.buildCustomInterceptors checks whether the interceptor of a certain type is already in the chain.
I wasn't able to modify QueryCacheRestartTest to make ICF build the chain before LifecycleManager.cacheStarting.
Here's the stacktrace of the error:
{code}
10:54:48,638 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start service jboss.capedwarf.cache-lifecycle.search.capedwarf-test-a: org.jboss.msc.service.StartException in service jboss.capedwarf.cache-lifecycle.search.capedwarf-test-a: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0_07]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0_07]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_07]
Caused by: org.infinispan.config.ConfigurationException: Detected interceptor of type [org.infinispan.query.backend.LocalQueryInterceptor] being added to the interceptor chain more than once!
at org.infinispan.interceptors.InterceptorChain.assertNotAdded(InterceptorChain.java:108)
at org.infinispan.interceptors.InterceptorChain.addInterceptorAfter(InterceptorChain.java:249)
at org.infinispan.query.impl.LifecycleManager.createQueryInterceptorIfNeeded(LifecycleManager.java:102)
at org.infinispan.query.impl.LifecycleManager.cacheStarting(LifecycleManager.java:78)
at org.infinispan.factories.ComponentRegistry.notifyCacheStarting(ComponentRegistry.java:210)
at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:196)
at org.infinispan.CacheImpl.start(CacheImpl.java:517)
at org.infinispan.AbstractDelegatingCache.start(AbstractDelegatingCache.java:343)
at org.jboss.as.capedwarf.services.CacheLifecycleService.start(CacheLifecycleService.java:79)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
... 3 more
{code}
--
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
More information about the infinispan-issues
mailing list