[ https://issues.apache.org/jira/browse/SOLR-5095?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hoss Man updated SOLR-5095: --------------------------- Attachment: SOLR-5095_bug_demo.patch SOLR-5095_bug_demo.patch is a trivial test patch demonstrating the discrepency between the infoRegistry contents and the JMX contents ... the off by 2 error is because... * out of hte box defaults defin a "query" QParser (NestedQParserPlugin) and a "query" SearchComponent (QueryComponent). * in the configs used by the test: there a "dismax" SearchHandler instance declared, in addition to the out of the box default "dismax" QParser {noformat} [junit4] FAILURE 0.04s | TestJmxIntegration.testInfoRegistryVsMbeanServer <<< [junit4] > Throwable #1: java.lang.AssertionError: regSize != numMbeans expected:<79> but was:<81> [junit4] > at __randomizedtesting.SeedInfo.seed([CF457CF6E471C68:3997F649BAD78365]:0) [junit4] > at org.apache.solr.core.TestJmxIntegration.testInfoRegistryVsMbeanServer(TestJmxIntegration.java:86) [junit4] > at java.lang.Thread.run(Thread.java:724) {noformat} > SolrCore.infoRegistry needs overhauled with some form of "namespacing" > ---------------------------------------------------------------------- > > Key: SOLR-5095 > URL: https://issues.apache.org/jira/browse/SOLR-5095 > Project: Solr > Issue Type: Bug > Reporter: Hoss Man > Attachments: SOLR-5095_bug_demo.patch > > > While investigating SOLR-3616, I realized the failure i was seeing didn't > seem to be related to the initial report of that bug, and instead seemed to > be due to an obvious and fundemental limitation in the way SolrCore keeps > track of "plugins" using the infoRegistry: It's just a {{Map<String, > SolrInfoMBean>}} keyed off of the name of the plugin, but there is not > "namespacing" used in the infoRegistry, so two completley different types of > plugins with the same name will overwrite each other. > When looking at data using something like /admin/mbeans, this manifests > itself solely as missing objects: last one .put() into the infoRegistry > "wins" -- using JMX, both objects are actually visible because of how JMX > ObjectNames are built arround a set of key=val pairs, and a bug in how > JmxMonitorMap unregisters existing MBeans when .put() is called on a key it > already knows about (the unregister call is made using an ObjectName built > using the infoBean passed to the put() call -- if infoBean.getName() is not > exactly the same as the previous infoBean put() with the same key, then the > MbeanServer will continue to know about both of them) -- 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-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org