Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-11659

JMX Metrics ObjectName needs comma escaping for /solr/col1,col2/select scenario

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 7.2
    • None
    • metrics
    • None

    Description

      As of SOLR-11444 it's possible to query Solr with /solr/col1,col2/select and query both. Some of Solr's JMX stuff apparently can't handle this. I found the following exception during testing in AliasIntegrationTest.test line 240 (when uncommented) and with a particular seed that for whatever reason isn't reproducing for me as I write this.

      10387 ERROR (qtp547916181-25) [n:127.0.0.1:57605_solr    ] o.a.s.s.HttpSolrCall null:java.lang.RuntimeException: solr_57605:dom1=solr,dom2=node,category=UPDATE,scope=updateShardHandler,name=http_//127.0.0.1_57604/solr/testalias4,testalias5/select.get.requests
      	at org.apache.solr.metrics.reporters.jmx.JmxObjectNameFactory.createName(JmxObjectNameFactory.java:169)
      	at org.apache.solr.metrics.reporters.jmx.JmxMetricsReporter$JmxListener.createName(JmxMetricsReporter.java:692)
      	at org.apache.solr.metrics.reporters.jmx.JmxMetricsReporter$JmxListener.onTimerAdded(JmxMetricsReporter.java:669)
      	at com.codahale.metrics.MetricRegistry.notifyListenerOfAddedMetric(MetricRegistry.java:462)
      	at com.codahale.metrics.MetricRegistry.onMetricAdded(MetricRegistry.java:448)
      	at com.codahale.metrics.MetricRegistry.register(MetricRegistry.java:89)
      	at com.codahale.metrics.MetricRegistry.getOrAdd(MetricRegistry.java:423)
      	at com.codahale.metrics.MetricRegistry.timer(MetricRegistry.java:211)
      	at org.apache.solr.util.stats.InstrumentedHttpRequestExecutor.timer(InstrumentedHttpRequestExecutor.java:127)
      	at org.apache.solr.util.stats.InstrumentedHttpRequestExecutor.execute(InstrumentedHttpRequestExecutor.java:115)
      	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
      	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
      	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
      	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)
      	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
      	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
      	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
      	at org.apache.solr.servlet.HttpSolrCall.remoteQuery(HttpSolrCall.java:618)
      	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:500)
      	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:382)
      	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:326)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
      	at org.apache.solr.client.solrj.embedded.JettySolrRunner$DebugFilter.doFilter(JettySolrRunner.java:139)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:224)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      	at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:493)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
      	at org.eclipse.jetty.server.Server.handle(Server.java:534)
      	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
      	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
      	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)
      	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108)
      	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
      	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
      	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
      	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: javax.management.MalformedObjectNameException: Unterminated key property part
      	at javax.management.ObjectName.construct(ObjectName.java:556)
      	at javax.management.ObjectName.<init>(ObjectName.java:1382)
      	at org.apache.solr.metrics.reporters.jmx.JmxObjectNameFactory.createName(JmxObjectNameFactory.java:167)
      	... 44 more
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            dsmiley David Smiley
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: