[
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]