[ https://issues.apache.org/jira/browse/SOLR-5986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14165448#comment-14165448 ]
Anshum Gupta commented on SOLR-5986: ------------------------------------ Digging deeper into all of this, seems like there's a bigger problem to solve at hand. As of now, when timeAllowed is set, we never get back an exception but just partialResults in the response header is set to true in case of a shard failure. This translates to shards.tolerant being ignored in that case. On the code level, the TimeExceededException never reaches ShardHandler and so the Exception is never set (similarly for ExitingReaderException) and/or returned to the client. I'll create another issue to handle all of that and take it up once this issue is resolved. For this issue, I think we should just target sticking to the current behavior when timeAllowed is passed i.e. set partialResults in the header to true when either of the time limiting exceptions are hit. The last patch uploaded here should fix that. > Don't allow runaway queries from harming Solr cluster health or search > performance > ---------------------------------------------------------------------------------- > > Key: SOLR-5986 > URL: https://issues.apache.org/jira/browse/SOLR-5986 > Project: Solr > Issue Type: Improvement > Components: search > Reporter: Steve Davids > Assignee: Anshum Gupta > Priority: Critical > Fix For: 5.0 > > Attachments: SOLR-5986-fixtests.patch, SOLR-5986-fixtests.patch, > SOLR-5986-fixtests.patch, SOLR-5986.patch, SOLR-5986.patch, SOLR-5986.patch, > SOLR-5986.patch, SOLR-5986.patch, SOLR-5986.patch, SOLR-5986.patch, > SOLR-5986.patch, SOLR-5986.patch, SOLR-5986.patch, SOLR-5986.patch, > SOLR-5986.patch > > > The intent of this ticket is to have all distributed search requests stop > wasting CPU cycles on requests that have already timed out or are so > complicated that they won't be able to execute. We have come across a case > where a nasty wildcard query within a proximity clause was causing the > cluster to enumerate terms for hours even though the query timeout was set to > minutes. This caused a noticeable slowdown within the system which made us > restart the replicas that happened to service that one request, the worst > case scenario are users with a relatively low zk timeout value will have > nodes start dropping from the cluster due to long GC pauses. > [~amccurry] Built a mechanism into Apache Blur to help with the issue in > BLUR-142 (see commit comment for code, though look at the latest code on the > trunk for newer bug fixes). > Solr should be able to either prevent these problematic queries from running > by some heuristic (possibly estimated size of heap usage) or be able to > execute a thread interrupt on all query threads once the time threshold is > met. This issue mirrors what others have discussed on the mailing list: > http://mail-archives.apache.org/mod_mbox/lucene-solr-user/200903.mbox/%3c856ac15f0903272054q2dbdbd19kea3c5ba9e105b...@mail.gmail.com%3E -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org