[ https://issues.apache.org/jira/browse/SOLR-14758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17396767#comment-17396767 ]
ASF subversion and git services commented on SOLR-14758: -------------------------------------------------------- Commit a72c99312380ef88fedd57d5f9806dc0f48406a1 in solr's branch refs/heads/main from Uwe Schindler [ https://gitbox.apache.org/repos/asf?p=solr.git;h=a72c993 ] SOLR-14758: Fix NPE in QueryComponent.mergeIds when using timeAllowed and sorting (#251) Signed-off-by: Uwe Schindler <uschind...@apache.org> Co-authored-by: Bram Van Dam <bram.van...@intix.eu> > 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: 40m > 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