[ https://issues.apache.org/jira/browse/SOLR-17151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17922240#comment-17922240 ]
Houston Putman commented on SOLR-17151: --------------------------------------- I think a small here opened up a pretty big error in the LBSolrClient, that propagates to the HttpShardHandler. In this ticket, when checking the previous exception, {{previousEx.getMessage().contains("Limits exceeded!")}} is used to check something. If the previousEx doesn't have a message, this throws a NullPointerException. In {{LBHttp2SolrClient}}, when choosing the next server to try, only {{SolrServerException}} is caught and used to complete the future. Since {{NullPointerException}} is not a {{SolrServerException}}, the exception finished the listener callback, but doesn't complete the {{apiFuture}}. This means that {{HttpShardHandler}} will wait infinitely for a completion that it will never receive. I will file another JIRA, and we should probably do a release to fix this bug. > Review current usage of QueryLimits to ensure complete coverage > --------------------------------------------------------------- > > Key: SOLR-17151 > URL: https://issues.apache.org/jira/browse/SOLR-17151 > Project: Solr > Issue Type: Sub-task > Components: Query Limits > Reporter: Andrzej Bialecki > Assignee: Gus Heck > Priority: Major > Labels: pull-request-available > Fix For: main (10.0), 9.8 > > Time Spent: 3.5h > Remaining Estimate: 0h > > Resource usage by a query is not limited to the actual search within > {{QueryComponent}}. Other components invoked by {{SearchHandler}} may > significantly contribute to this usage, either before or after the > {{QueryComponent}}. > Those components that already use {{QueryTimeout}} either directly or > indirectly will properly observe the limits and terminate if needed. However, > other components may be expensive or misbehaving but fail to observe the > limits imposed on the end-to-end query processing. > One such obvious place where we could add this check is where the > {{SearchHandler}} loops over {{SearchComponent}-s - it should call explicitly > {{QueryLimits.shouldExit()}} to ensure that even if previously executed > component ignored the limits they will be still enforced at the > {{SearchHandler}} level. There may be other places like this, too. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org