You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Erick Erickson (JIRA)" <ji...@apache.org> on 2013/03/11 16:31:12 UTC
[jira] [Created] (SOLR-4557) Fix broken
CoreContainerTest.testReload
Erick Erickson created SOLR-4557:
------------------------------------
Summary: Fix broken CoreContainerTest.testReload
Key: SOLR-4557
URL: https://issues.apache.org/jira/browse/SOLR-4557
Project: Solr
Issue Type: Test
Affects Versions: 4.2, 5.0
Reporter: Erick Erickson
Assignee: Erick Erickson
I was chasing down a test failure, and it turns out that CoreContainerTest.testReload has only succeeded by chance. The test fires up 4 threads that go out and reload the same core all at once. This caused me to look at properly synchronizing reloading cores pursuant to SOLR-4196, on the theory that we should serialize loading, unloading and reloading cores; we shouldn't be doing _any_ of those operations from different threads on the same core at the same time. It turns out that if you fire up multiple reloads at once without serializing them, an error is thrown instead of proper reloading occurring, and that's the only reason the test doesn't hang. The stack trace of the exception is below for reference, but it doesn't with the code I'll attach to this patch:
[junit4:junit4] 2> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095)
[junit4:junit4] 2> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.exclusiveUnregisterMBean(DefaultMBeanServerInterceptor.java:427)
[junit4:junit4] 2> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.unregisterMBean(DefaultMBeanServerInterceptor.java:415)
[junit4:junit4] 2> at com.sun.jmx.mbeanserver.JmxMBeanServer.unregisterMBean(JmxMBeanServer.java:536)
[junit4:junit4] 2> at org.apache.solr.core.JmxMonitoredMap.put(JmxMonitoredMap.java:138)
[junit4:junit4] 2> at org.apache.solr.core.JmxMonitoredMap.put(JmxMonitoredMap.java:51)
[junit4:junit4] 2> at org.apache.solr.core.RequestHandlers.register(RequestHandlers.java:106)
[junit4:junit4] 2> at org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:157)
[junit4:junit4] 2> at org.apache.solr.core.SolrCore.<init>(SolrCore.java:757)
[junit4:junit4] 2> at org.apache.solr.core.SolrCore.reload(SolrCore.java:408)
[junit4:junit4] 2> at org.apache.solr.core.CoreContainer.reload(CoreContainer.java:1076)
[junit4:junit4] 2> at org.apache.solr.core.TestCoreContainer$1TestThread.run(TestCoreContainer.java:90)
--
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
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org