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