You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Gus Heck (Jira)" <ji...@apache.org> on 2021/07/13 14:10:00 UTC
[jira] [Comment Edited] (SOLR-14758) NPE in QueryComponent.mergeIds
when using timeAllowed and sorting
[ 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:09 PM:
-----------------------------------------------------------
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.
was (Author: gus_heck):
Am seeing this NPE as well, showed up in a gatling run replaying requests 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-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org