You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Scott Blum (JIRA)" <ji...@apache.org> on 2018/08/16 00:49:00 UTC

[jira] [Assigned] (SOLR-5180) Core admin reload for an invalid core name returns 500 rather than 400 status code

     [ https://issues.apache.org/jira/browse/SOLR-5180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Scott Blum reassigned SOLR-5180:
--------------------------------

    Assignee: Scott Blum

> Core admin reload for an invalid core name returns 500 rather than 400 status code
> ----------------------------------------------------------------------------------
>
>                 Key: SOLR-5180
>                 URL: https://issues.apache.org/jira/browse/SOLR-5180
>             Project: Solr
>          Issue Type: Bug
>          Components: multicore
>    Affects Versions: 4.4
>            Reporter: Jack Krupansky
>            Assignee: Scott Blum
>            Priority: Major
>
> A core admin request to reload a nonexistent core name returns a 500 Server Error rather than a 400 Invalid Request status code.
> The request: 
> {code}
> curl "http://localhost:8983/solr/admin/cores?action=reload&core=bogus&indent=true"
> {code}
> The response:
> {code}
> <?xml version="1.0" encoding="UTF-8"?>
> <response>
> <lst name="responseHeader">
>   <int name="status">500</int>
>   <int name="QTime">5</int>
> </lst>
> <lst name="error">
>   <str name="msg">Error handling 'reload' action</str>
>   <str name="trace">org.apache.solr.common.SolrException: Error handling 'reload' action
>         at org.apache.solr.handler.admin.CoreAdminHandler.handleReloadAction(CoreAdminHandler.java:673)
>         at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:172)
>         at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
>         at org.apache.solr.servlet.SolrDispatchFilter.handleAdminRequest(SolrDispatchFilter.java:655)
>         at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:246)
>         at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195)
>         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
>         at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
>         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
>         at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
>         at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
>         at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
>         at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
>         at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>         at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
>         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>         at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
>         at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
>         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>         at org.eclipse.jetty.server.Server.handle(Server.java:368)
>         at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
>         at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
>         at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942)
>         at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004)
>         at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
>         at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
>         at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
>         at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>         at java.lang.Thread.run(Unknown Source)
> Caused by: org.apache.solr.common.SolrException: Unable to reload core: bogus
>         at org.apache.solr.core.CoreContainer.recordAndThrow(CoreContainer.java:930)
>         at org.apache.solr.core.CoreContainer.reload(CoreContainer.java:685)
>         at org.apache.solr.handler.admin.CoreAdminHandler.handleReloadAction(CoreAdminHandler.java:671)
>         ... 30 more
> Caused by: org.apache.solr.common.SolrException: No such core: bogus
>         at org.apache.solr.core.CoreContainer.reload(CoreContainer.java:636)
>         ... 31 more
> </str>
>   <int name="code">500</int>
> </lst>
> </response>
> {code}
> The code at CoreContainer.reload(CoreContainer.java:636) correctly throws a Solr Bad Request Exception:
> {Code}
>       if (core == null)
>         throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "No such core: " + name );
> {code}
> But then the code at CoreAdminHandler.handleReloadAction(CoreAdminHandler.java:673) catches it and throws the Server Error exception:
> {code}
>     try {
>       coreContainer.reload(cname);
>     } catch (Exception ex) {
>       throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Error handling 'reload' action", ex);
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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