[ 
https://issues.apache.org/jira/browse/LUCENE-6228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16603588#comment-16603588
 ] 

Steve Rowe commented on LUCENE-6228:
------------------------------------

{{git bisect}} says that the first failing commit for the below reproducing 
failures from [https://jenkins.thetaphi.de/job/Lucene-Solr-master-MacOSX/4813/] 
is {{910a0231f}} on this issue:

{noformat}
Checking out Revision d997e8b4a2717e000437953c9d66ad1f84229afd 
(refs/remotes/origin/master)
[...]
   [junit4]   2> NOTE: reproduce with: ant test  
-Dtestcase=TestCollapseQParserPlugin 
-Dtests.method=testFieldValueCollapseWithNegativeMinMax 
-Dtests.seed=D4530DFC3968CF99 -Dtests.slow=true -Dtests.locale=my 
-Dtests.timezone=Europe/Vilnius -Dtests.asserts=true -Dtests.file.encoding=UTF-8
   [junit4] ERROR   0.04s J0 | 
TestCollapseQParserPlugin.testFieldValueCollapseWithNegativeMinMax <<<
   [junit4]    > Throwable #1: java.lang.RuntimeException: Exception during 
query
   [junit4]    >        at 
__randomizedtesting.SeedInfo.seed([D4530DFC3968CF99:F8DDBC49F4316038]:0)
   [junit4]    >        at 
org.apache.solr.SolrTestCaseJ4.assertQ(SolrTestCaseJ4.java:917)
   [junit4]    >        at 
org.apache.solr.SolrTestCaseJ4.assertQ(SolrTestCaseJ4.java:877)
   [junit4]    >        at 
org.apache.solr.search.TestCollapseQParserPlugin.testFieldValueCollapseWithNegativeMinMax(TestCollapseQParserPlugin.java:255)
   [junit4]    >        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   [junit4]    >        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   [junit4]    >        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   [junit4]    >        at 
java.base/java.lang.reflect.Method.invoke(Method.java:564)
   [junit4]    >        at java.base/java.lang.Thread.run(Thread.java:844)
   [junit4]    > Caused by: java.lang.NullPointerException
   [junit4]    >        at 
org.apache.solr.search.CollapsingQParserPlugin$IntFloatStrategy.collapse(CollapsingQParserPlugin.java:2312)
   [junit4]    >        at 
org.apache.solr.search.CollapsingQParserPlugin$IntFieldValueCollector.collect(CollapsingQParserPlugin.java:1170)
   [junit4]    >        at 
org.apache.lucene.search.MatchAllDocsQuery$1$1.score(MatchAllDocsQuery.java:62)
   [junit4]    >        at 
org.apache.lucene.search.BulkScorer.score(BulkScorer.java:39)
   [junit4]    >        at 
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:652)
   [junit4]    >        at 
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:443)
   [junit4]    >        at 
org.apache.solr.search.SolrIndexSearcher.buildAndRunCollectorChain(SolrIndexSearcher.java:217)
   [junit4]    >        at 
org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1622)
   [junit4]    >        at 
org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1438)
   [junit4]    >        at 
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:585)
   [junit4]    >        at 
org.apache.solr.handler.component.QueryComponent.doProcessUngroupedSearch(QueryComponent.java:1436)
   [junit4]    >        at 
org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:375)
   [junit4]    >        at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:298)
   [junit4]    >        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
   [junit4]    >        at 
org.apache.solr.core.SolrCore.execute(SolrCore.java:2541)
   [junit4]    >        at 
org.apache.solr.util.TestHarness.query(TestHarness.java:338)
   [junit4]    >        at 
org.apache.solr.util.TestHarness.query(TestHarness.java:320)
   [junit4]    >        at 
org.apache.solr.SolrTestCaseJ4.assertQ(SolrTestCaseJ4.java:891)
   [junit4]    >        ... 40 more
[...]
   [junit4]   2> NOTE: reproduce with: ant test  
-Dtestcase=TestRandomCollapseQParserPlugin 
-Dtests.method=testRandomCollpaseWithSort -Dtests.seed=D4530DFC3968CF99 
-Dtests.slow=true -Dtests.locale=ru -Dtests.timezone=America/Jujuy 
-Dtests.asserts=true -Dtests.file.encoding=UTF-8
   [junit4] ERROR   0.16s J0 | 
TestRandomCollapseQParserPlugin.testRandomCollpaseWithSort <<<
   [junit4]    > Throwable #1: java.lang.RuntimeException: BUG using params: 
sort=enum_dv+asc,+collation_en_primary_last+asc,+id+desc&rows=200&fq={!collapse+size%3D7162+nullPolicy%3Dexpand+field%3Dfloat_dv_first+sort%3D'score+desc,+enum_last+asc,+id+asc'}
 + q=*:*&fl=id,float_dv_first
   [junit4]    >        at 
__randomizedtesting.SeedInfo.seed([D4530DFC3968CF99:D1EE7E3512C0FC6A]:0)
   [junit4]    >        at 
org.apache.solr.search.TestRandomCollapseQParserPlugin.testRandomCollpaseWithSort(TestRandomCollapseQParserPlugin.java:202)
   [junit4]    >        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   [junit4]    >        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   [junit4]    >        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   [junit4]    >        at 
java.base/java.lang.reflect.Method.invoke(Method.java:564)
   [junit4]    >        at java.base/java.lang.Thread.run(Thread.java:844)
   [junit4]    > Caused by: org.apache.solr.client.solrj.SolrServerException: 
org.apache.solr.client.solrj.SolrServerException: java.lang.NullPointerException
   [junit4]    >        at 
org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:233)
   [junit4]    >        at 
org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:194)
   [junit4]    >        at 
org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:942)
   [junit4]    >        at 
org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:957)
   [junit4]    >        at 
org.apache.solr.search.TestRandomCollapseQParserPlugin.testRandomCollpaseWithSort(TestRandomCollapseQParserPlugin.java:158)
   [junit4]    >        ... 38 more
   [junit4]    > Caused by: org.apache.solr.client.solrj.SolrServerException: 
java.lang.NullPointerException
   [junit4]    >        at 
org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.checkForExceptions(EmbeddedSolrServer.java:301)
   [junit4]    >        at 
org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:192)
   [junit4]    >        ... 42 more
   [junit4]    > Caused by: java.lang.NullPointerException
   [junit4]    >        at 
org.apache.solr.search.CollapsingQParserPlugin$IntSortSpecStrategy.collapse(CollapsingQParserPlugin.java:2513)
   [junit4]    >        at 
org.apache.solr.search.CollapsingQParserPlugin$IntFieldValueCollector.collect(CollapsingQParserPlugin.java:1170)
   [junit4]    >        at 
org.apache.lucene.search.MatchAllDocsQuery$1$1.score(MatchAllDocsQuery.java:62)
   [junit4]    >        at 
org.apache.lucene.search.BulkScorer.score(BulkScorer.java:39)
   [junit4]    >        at 
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:652)
   [junit4]    >        at 
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:443)
   [junit4]    >        at 
org.apache.solr.search.SolrIndexSearcher.buildAndRunCollectorChain(SolrIndexSearcher.java:217)
   [junit4]    >        at 
org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1622)
   [junit4]    >        at 
org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1438)
   [junit4]    >        at 
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:585)
   [junit4]    >        at 
org.apache.solr.handler.component.QueryComponent.doProcessUngroupedSearch(QueryComponent.java:1436)
   [junit4]    >        at 
org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:375)
   [junit4]    >        at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:298)
   [junit4]    >        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
   [junit4]    >        at 
org.apache.solr.core.SolrCore.execute(SolrCore.java:2541)
   [junit4]    >        at 
org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:191)
   [junit4]    >        ... 42 more
{noformat}

> Do not expose full-fledged scorers in LeafCollector.setScorer
> -------------------------------------------------------------
>
>                 Key: LUCENE-6228
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6228
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Adrien Grand
>            Assignee: Alan Woodward
>            Priority: Major
>             Fix For: master (8.0)
>
>         Attachments: LUCENE-6228.patch, LUCENE-6228.patch, LUCENE-6228.patch, 
> LUCENE-6228.patch, LUCENE-6228.patch, LUCENE-6228.patch
>
>
> Currently LeafCollector.setScorer takes a Scorer, which I don't like because 
> several methods should never be called in the context of a Collector (like 
> nextDoc or advance).
> I think it's even more trappy for methods that might seem to work in some 
> particular cases but will not work in the general case, like getChildren 
> which will not work if you have a specialized BulkScorer or iterating over 
> positions which will not work if you are in a MultiCollector and another leaf 
> collector consumes positions too.
> So I think we should restrict what can be seen from a collector to avoid such 
> traps.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to