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

Uwe Schindler edited comment on SOLR-14758 at 8/13/21, 9:33 AM:
----------------------------------------------------------------

Hi,

sorry, I found a failure, but it is not in the statistics posted before!

java.lang.AssertionError: Number of documents (1) is different from number of 
expected values (3)

But this one is exactly what I expected. It looks like sometimes the flag 
"partialResults" is not set correctly when the query timeouts while sorting. 
The new test added by this commit just showed the issue, but it is unrelated to 
this original NPE issue.


was (Author: thetaphi):
Hi,

sorry, I found a failure, but it is not in the statistics posted before!

java.lang.AssertionError: Number of documents (1) is different from number of 
expected values (3)

But this one is exactly what I expected. It looks like sometimes the flag 
"partialResults" is not set correctly when the query timeouts while sorting. 
The new test added by this commit just showed the issue, but it is unrelated to 
this issue.

> NPE in QueryComponent.mergeIds when using timeAllowed and sorting
> -----------------------------------------------------------------
>
>                 Key: SOLR-14758
>                 URL: https://issues.apache.org/jira/browse/SOLR-14758
>             Project: Solr
>          Issue Type: Bug
>          Components: SolrCloud
>    Affects Versions: 7.7.3, 8.6.3, main (9.0), 8.8.1, 8.8.2
>            Reporter: Bram Van Dam
>            Assignee: Uwe Schindler
>            Priority: Major
>             Fix For: main (9.0), 8.10
>
>         Attachments: SOLR-14758.patch, SOLR-14758.patch
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> Only tested on 7.7.3 and master, but the offending code hasn't been changed 
> for a while, so this presumably affects other versions as well. 
> Steps to reproduce:
> # SolrCloud
> # Create a query which is complex enough to take a while
> # Add a sort clause to the query (e.g. &sort=creationTimestamp asc)
> # Add a short value timeAllowed (10ms in my test)
> Result: NPE in QueryComponent.mergeIds:935
> It may take a couple of attempts to hit the error.
> Offending code:
> {code:java}
>         NamedList sortFieldValues = 
> (NamedList)(srsp.getSolrResponse().getResponse().get("sort_values"));
>         if (sortFieldValues.size()==0 && // we bypass merging this response 
> only if it's partial itself
>                             thisResponseIsPartial) { // but not the previous 
> one!!
>           continue; //fsv timeout yields empty sort_vlaues
>         }
> {code}
> sortFieldValues can apparently be null in some cases, depending on when the 
> query hits the timeAllowed. Adding an extra null check fixes the issue.
> {code:java}
>         NamedList sortFieldValues = 
> (NamedList)(srsp.getSolrResponse().getResponse().get("sort_values"));
>         if ((null == sortFieldValues || sortFieldValues.size()==0) && // we 
> bypass merging this response only if it's partial itself
>                             thisResponseIsPartial) { // but not the previous 
> one!!
>           continue; //fsv timeout yields empty sort_vlaues
>         }
> {code}
> I'll attach a patch.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to