[ https://issues.apache.org/jira/browse/SOLR-14758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17395212#comment-17395212 ]
Bram Van Dam edited comment on SOLR-14758 at 8/7/21, 12:45 PM: --------------------------------------------------------------- [~uschindler], we've been using this patch in production for almost a year now, and nothing bad has happened so far :-) was (Author: bvd): [~uschindler] we've been using this patch in production for almost a year now, and nothing bad has happened so far :-) > 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, main (9.0) > Reporter: Bram Van Dam > Assignee: Uwe Schindler > Priority: Major > Attachments: SOLR-14758.patch, SOLR-14758.patch > > > 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