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

We need a better error message when failing due to a slice that is part of collection is not available

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 4.0-ALPHA
    • 4.9, 6.0
    • SolrCloud
    • None

    Description

      When indexing to/searching from an incomplete collection (for example a slice does not have any shards registered/available) a cruel error without a proper explanation is shown to the user. These errors are from running example1.sh and creating a new collection with coreadminhandler:

      Slices with no shards:
      Indexing:

      Error 500 No registered leader was found, collection:collection2 slice:shard4
      
      java.lang.RuntimeException: No registered leader was found, collection:collection2 slice:shard4
      	at org.apache.solr.common.cloud.ZkStateReader.getLeaderProps(ZkStateReader.java:408)
      	at org.apache.solr.common.cloud.ZkStateReader.getLeaderProps(ZkStateReader.java:393)
      	at org.apache.solr.update.processor.DistributedUpdateProcessor.setupRequest(DistributedUpdateProcessor.java:154)
      	at org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:210)
      	at org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:115)
      	at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:135)
      	at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:79)
      	at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:59)
      	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
      	at org.apache.solr.core.SolrCore.execute(SolrCore.java:1523)
      	at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:339)
      	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:234)
      	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
      	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
      	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
      	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
      	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
      	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
      	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      	at org.mortbay.jetty.Server.handle(Server.java:326)
      	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
      	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
      	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
      	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
      	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
      	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
      	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
      

      Searching:

      HTTP ERROR 503
      
      Problem accessing /solr/coreX/select/. Reason:
      
          no servers hosting shard: 
      Powered by Jetty://
      

      Surprisingly the error is different when searching from a collection after removing a core from an collection that was in OK condition:

      HTTP ERROR 500
      
      Problem accessing /solr/coreX/select/. Reason:
      
          null
      
      java.util.concurrent.RejectedExecutionException
      	at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1768)
      	at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
      	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
      	at java.util.concurrent.ExecutorCompletionService.submit(ExecutorCompletionService.java:152)
      	at org.apache.solr.handler.component.HttpShardHandler.submit(HttpShardHandler.java:173)
      	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:274)
      	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
      	at org.apache.solr.core.SolrCore.execute(SolrCore.java:1523)
      	at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:339)
      	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:234)
      	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
      	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
      	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
      	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
      	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
      	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
      	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      	at org.mortbay.jetty.Server.handle(Server.java:326)
      	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
      	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
      	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
      	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
      	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
      	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
      	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
      
      

      In these cases we should explain the user what's wrong in more understandable way.

      Attachments

        1. SOLR-3118.patch
          2 kB
          Mark Miller

        Activity

          People

            markrmiller@gmail.com Mark Miller
            siren Sami Siren
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: