[ 
https://issues.apache.org/jira/browse/SOLR-2623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13057169#comment-13057169
 ] 

Shalin Shekhar Mangar commented on SOLR-2623:
---------------------------------------------

Thanks for reporting this Alexey. I think the right way to fix it would be to 
modify the JmxMonitoredMap. Right now, the unregister method checks if a given 
key is registered with the server and if so, unregisters it. On a core reload, 
the key is same but the bean instance is different so all keys are unregistered.

We can modify the SolrDynamicMBean and put the parent core's hashCode as an 
extra attribute. Then in the unregister method, remove the mbean from the 
server after checking if the mbean's hashCode attribute has the same value.

> Solr JMX MBeans do not survive core reloads
> -------------------------------------------
>
>                 Key: SOLR-2623
>                 URL: https://issues.apache.org/jira/browse/SOLR-2623
>             Project: Solr
>          Issue Type: Bug
>          Components: multicore
>    Affects Versions: 1.4, 1.4.1, 3.1, 3.2
>            Reporter: Alexey Serba
>            Assignee: Shalin Shekhar Mangar
>            Priority: Minor
>         Attachments: SOLR-2623.patch, SOLR-2623.patch, SOLR-2623.patch
>
>
> Solr JMX MBeans do not survive core reloads
> {noformat:title="Steps to reproduce"}
> sh> cd example
> sh> vi multicore/core0/conf/solrconfig.xml # enable jmx
> sh> java -Dcom.sun.management.jmxremote -Dsolr.solr.home=multicore -jar 
> start.jar
> sh> echo 'open 8842 # 8842 is java pid
> > domain solr/core0
> > beans
> > ' | java -jar jmxterm-1.0-alpha-4-uber.jar
> ....
> solr/core0:id=core0,type=core
> solr/core0:id=org.apache.solr.handler.StandardRequestHandler,type=org.apache.solr.handler.StandardRequestHandler
> solr/core0:id=org.apache.solr.handler.StandardRequestHandler,type=standard
> solr/core0:id=org.apache.solr.handler.XmlUpdateRequestHandler,type=/update
> solr/core0:id=org.apache.solr.handler.XmlUpdateRequestHandler,type=org.apache.solr.handler.XmlUpdateRequestHandler
> ...
> solr/core0:id=org.apache.solr.search.SolrIndexSearcher,type=searcher
> solr/core0:id=org.apache.solr.update.DirectUpdateHandler2,type=updateHandler
> sh> curl 'http://localhost:8983/solr/admin/cores?action=RELOAD&core=core0'
> sh> echo 'open 8842 # 8842 is java pid
> > domain solr/core0
> > beans
> > ' | java -jar jmxterm-1.0-alpha-4-uber.jar
> # there's only one bean left after Solr core reload
> solr/core0:id=org.apache.solr.search.SolrIndexSearcher,type=Searcher@2e831a91 
> main
> {noformat}
> The root cause of this is Solr core reload behavior:
> # create new core (which overwrites existing registered MBeans)
> # register new core and close old one (we remove/un-register MBeans on 
> oldCore.close)
> The correct sequence is:
> # unregister MBeans from old core
> # create and register new core
> # close old core without touching MBeans

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to