[
https://issues.apache.org/jira/browse/SOLR-14607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17299792#comment-17299792
]
Christine Poerschke commented on SOLR-14607:
--------------------------------------------
Using the three files in the attached SOLR-14607-poc.patch here's my
corresponding stacktrace for the artificial scenario:
{code}
2021-03-11 17:54:04.690 ERROR (qtp1544614339-23) [ x:techproducts]
o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException:
java.lang.RuntimeException: Exception from createWeight for
OriginalScoreFeature [name=originalScore, params={}] The request took too long
to iterate over terms. Timeout: timeoutAt: 14483064787413 (System.nanoTime():
14494210599033),
TermsEnum=org.apache.lucene.codecs.lucene90.blocktree.SegmentTermsEnum@f78155a
at
org.apache.solr.search.ReRankCollector.topDocs(ReRankCollector.java:154)
at
org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1602)
at
org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1416)
at
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:599)
at
org.apache.solr.handler.component.QueryComponent.doProcessUngroupedSearch(QueryComponent.java:1508)
at
org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:398)
at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:355)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:214)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:2609)
at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:794)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:567)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:518)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:432)
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1612)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1582)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
at
org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)
at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at
org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.RuntimeException: Exception from createWeight for
OriginalScoreFeature [name=originalScore, params={}] The request took too long
to iterate over terms. Timeout: timeoutAt: 14483064787413 (System.nanoTime():
14494210599033),
TermsEnum=org.apache.lucene.codecs.lucene90.blocktree.SegmentTermsEnum@f78155a
at
org.apache.solr.ltr.LTRScoringQuery.createWeights(LTRScoringQuery.java:254)
at
org.apache.solr.ltr.LTRScoringQuery.createWeight(LTRScoringQuery.java:221)
at
org.apache.solr.ltr.LTRScoringQuery.createWeight(LTRScoringQuery.java:57)
at
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:859)
at org.apache.solr.ltr.LTRRescorer.rerank(LTRRescorer.java:125)
at org.apache.solr.ltr.LTRRescorer.rescore(LTRRescorer.java:116)
at
org.apache.solr.search.ReRankCollector.topDocs(ReRankCollector.java:119)
... 50 more
Caused by:
org.apache.lucene.index.ExitableDirectoryReader$ExitingReaderException: The
request took too long to iterate over terms. Timeout: timeoutAt: 14483064787413
(System.nanoTime(): 14494210599033),
TermsEnum=org.apache.lucene.codecs.lucene90.blocktree.SegmentTermsEnum@f78155a
at
org.apache.lucene.index.ExitableDirectoryReader$ExitableTermsEnum.checkTimeoutWithSampling(ExitableDirectoryReader.java:539)
at
org.apache.lucene.index.ExitableDirectoryReader$ExitableTermsEnum.<init>(ExitableDirectoryReader.java:527)
at
org.apache.lucene.index.ExitableDirectoryReader$ExitableTerms.iterator(ExitableDirectoryReader.java:509)
at org.apache.lucene.index.TermStates.loadTermsEnum(TermStates.java:117)
at org.apache.lucene.index.TermStates.build(TermStates.java:102)
at org.apache.lucene.search.TermQuery.createWeight(TermQuery.java:211)
at
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:859)
at
org.apache.solr.ltr.feature.OriginalScoreFeature$OriginalScoreWeight.<init>(OriginalScoreFeature.java:70)
at
org.apache.solr.ltr.feature.OriginalScoreFeature.createWeight(OriginalScoreFeature.java:59)
at
org.apache.solr.ltr.feature.OriginalScoreFeature.createWeight(OriginalScoreFeature.java:41)
at
org.apache.solr.ltr.LTRScoringQuery.createWeights(LTRScoringQuery.java:250)
... 56 more
{code}
> LTR Query, timeAllowed parameter causes a timeout exception with no result
> --------------------------------------------------------------------------
>
> Key: SOLR-14607
> URL: https://issues.apache.org/jira/browse/SOLR-14607
> Project: Solr
> Issue Type: Improvement
> Components: contrib - LTR
> Affects Versions: main (9.0)
> Reporter: Dawn
> Priority: Minor
> Attachments: SOLR-14607-poc.patch
>
> Time Spent: 1.5h
> Remaining Estimate: 0h
>
> When using the LTR, open timeAllowed parameter, LTR feature of query may call
> 'ExitableFilterAtomicReader.CheckAndThrow' timeout checks.
> If a timeout occurs at this point, the exception ExitingReaderException is
> thrown, Lead to null result.
> Exception information:
> {code:java}
> The request took too long to iterate over terms. Timeout: timeoutAt:
> 50321611131050 (System.nanoTime(): 50321639573838),
> TermsEnum=org.apache.lucene.codecs.blocktree.SegmentTermsEnum@62eaeeaa
> {code}
>
> Can hold this exception in the LTR, returning partial results rather than
> null.
> This exception occurs in two places:
> 1. 'LTRScoringQuery.CreateWeight' or 'LTRScoringQuery.createWeightsParallel'.
> Here is the loading stage, timeout directly end is acceptable.
> 2. 'ModelWeight.scorer'. This is a stage that evaluates each Doc and can
> catch the exception, returns the computed document.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)