: Interesting... I still haven't been able to reproduce a hang with
: either jetty or tomcat.
: I enabled replication and JMX... still nothing.

I haven't tried to reproduce the problem, and i don't even have a concrete 
theory as to what the problem is ... but i did want to point out something 
that smells fishy...

looking over the patch in SOLR-1427, i notice that the patch adds new code 
so that SolrResourceLoader adds everything it instantiates to the registry 
map -- but there are no lines in that patch removing any code that was 
already adding stuff to the infoRegistry ... which means any bean 
types that were already getting instantiated by the ResourceLoader, and 
explicitly 
added to hte registry are probably now getting added to the registry twice 
... for a normal Map that's not a big deal, but perhaps the JMX backed map 
has some problems with that? (it's not likely something that we ever 
tested extensively)

Alternately: maybe the problem isn't with adding to the JMX backed map 
twice ... maybe the issue is what state the beans are in each time we add 
them to the map ... the first time requesthandlers are added to the 
infoRegistry it's prior to the inform(SolrCore) call so they havne't been 
fully initalized yet -- but the way SOlrResourceLoader adds them now (the 
second time) is *after* inform(SolrCore) has been called and in between 
the creation/countDown of the CountDownLatch for the searchExecutor ... 

   ...hmmm, actually this starting to sound like a concrete theory, 
ReplicationHandler.getStatistics has very different behavior before/after 
inform(SolrCore) has been called....

Maybe moving the resourceLoader.inform(infoRegistry) call PRIOR to 
resourceLoader.inform( this ) *or* AFTER latch.countDown() would solve 
this problem?

-Hoss

Reply via email to