[ 
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)

Reply via email to