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

Mike Drob commented on SOLR-10020:
----------------------------------

Exactly. And because we don't start a new thread in the handler, we can throw 
an exception which eventually gets back to the caller instead of solely logging 
the problem.

LISTSNAPSHOTS_OP also throws an exception, so does not have this problem.

FORCEPREPAREFORLEADERSHIP_OP logs but does not throw, so a client will not see 
the problem with a non-existent core. This is easy to fix with something like 
{noformat}
        
core.getCoreDescriptor().getCloudDescriptor().setLastPublished(Replica.State.ACTIVE);
        log().info("Setting the last published state for this core, {}, to {}", 
core.getName(), Replica.State.ACTIVE);
      } else {
-        SolrException.log(log(), "Could not find core: " + cname);
+        throw new SolrException(ErrorCode.BAD_REQUEST, "Unable to locate core 
" + cname);
      }
    }
  }),
{noformat}
I didn't do that in this patch because I'm not sure who the callers of this API 
are and didn't want to rock too many boats at once.

> CoreAdminHandler silently swallows some errors
> ----------------------------------------------
>
>                 Key: SOLR-10020
>                 URL: https://issues.apache.org/jira/browse/SOLR-10020
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Erick Erickson
>            Assignee: Erick Erickson
>         Attachments: SOLR-10020.patch, SOLR-10020.patch, SOLR-10020.patch
>
>
> With the setup on SOLR-10006, after removing some index files and starting 
> that Solr instance I tried issuing a REQUESTRECOVERY command and it came back 
> as a success even though nothing actually happened. When the core is 
> accessed, a core init exception is returned by subsequent calls to getCore(). 
> There is no catch block after the try so no error is returned.
> Looking through the code I see several other commands that have a similar 
> pattern:
>  FORCEPREPAREFORLEADERSHIP_OP
> LISTSNAPSHOTS_OP
> getCoreStatus
> and perhaps others. getCore() can throw an exception, about the only explicit 
> one it does throw is if the core has an initialization error.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to