[ 
https://issues.apache.org/jira/browse/SOLR-4557?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Erick Erickson updated SOLR-4557:
---------------------------------

    Attachment: SOLR-4557.patch

Fix for trunk corresponding to the checkin.
                
> 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
>         Attachments: SOLR-4557.patch, SOLR-4557.patch, 
> SOLR-4557_posthshutdown_stack.txt
>
>
> 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to