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

Hoss Man updated SOLR-8738:
---------------------------
    Attachment: SOLR-8738.patch

The crux of why the errors are silently ignored seems to be because 
{{DUP.doFinish()}} only logs a WARN -- but does not propogate -- any error 
returned by {{cmdDistrib.getErrors();}} unless the type of Node involved in the 
request was a {{RetryNode}}.  The reason given for this being...

{code}
// else
// for now we don't error - we assume if it was added locally, we
// succeeded 
{code}

The problem aparently being that when a DBQ is forwarded to all leaders, 
{{StdNode}} is (currently) used -- but there was no local operation executed, 
only the forward to the leaders, so there is no local success/failure.

----

The attached patch changes the DBQ propagation logic to use {{RetryNode}} -- 
i'm still running full tests, but at a minimum it makes the new 
{{TestCloudDeleteByQuery}} in the patch start passing.

i don't fully understand the entire ramifications of this change, particularly 
as it relates to rest of the code in {{DUP.doFinish}} and things like forcing 
leader recovery, but based on the comments on the {{StdNode}} / {{RetryNode}} 
classes and the other uses of {{StdNode}} / {{RetryNode}}{{RetryNode}} 
(notably: STD->replica vs RETRY->leader) this seems like the most correct fix 
in general.

> invalid DBQ initially sent to a non-leader node will report success
> -------------------------------------------------------------------
>
>                 Key: SOLR-8738
>                 URL: https://issues.apache.org/jira/browse/SOLR-8738
>             Project: Solr
>          Issue Type: Bug
>            Reporter: Hoss Man
>         Attachments: SOLR-8738.patch, SOLR-8738.patch
>
>
> Discovered this while working on SOLR-445.
> If a Delete By Query gets sent to a node which is not hosting a leader (ie: 
> only hosts replicas, or doesn't host any cores related to the specified 
> collection) then a success will be returned, even if the DBQ is completely 
> malformed and actually failed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to