Bram Van Dam created SOLR-14758:
-----------------------------------

             Summary: 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
      Security Level: Public (Default Security Level. Issues are Public)
          Components: SolrCloud
    Affects Versions: 7.7.3, master (9.0)
            Reporter: Bram Van Dam


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...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to