[ https://issues.apache.org/jira/browse/SOLR-14758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17379906#comment-17379906 ]
Gus Heck edited comment on SOLR-14758 at 7/13/21, 2:14 PM: ----------------------------------------------------------- Am seeing this NPE for a customer as well, showed up in a Gatling run replaying requests into 8.8.2 from their production. Also SOLR-14674 has some information and appears to be about the same issue. Based on links there, this may have been lurking for 2-3 years. was (Author: gus_heck): Am seeing this NPE as well, showed up in a Gatling run replaying requests into 8.8.2 from their production. Also SOLR-14674 has some information and appears to be about the same issue. Based on links there, this may have been lurking for 2-3 years. > 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 > 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