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