I tried to explain the problem and proposed a small patch on
https://issues.apache.org/jira/browse/LUCENE-6329

On Tue, Mar 3, 2015 at 6:05 PM, Robert Muir <rcm...@gmail.com> wrote:
> Well, we should think about the api and not rush it.
>
> i was just thinking that right now, this problem is really a
> disjunctions one, in that it does something wrong if you call score(),
> even though you said you didnt need them. but in this case, if it
> wrapped its subs with constantscorer, it would then be "well-behaved"
> ?
>
> On Tue, Mar 3, 2015 at 12:02 PM, Adrien Grand <jpou...@gmail.com> wrote:
>> OK, it works for me too. Then I'll also add assertions that you do not
>> call score() if you passed needsScores=false.
>>
>> On Tue, Mar 3, 2015 at 5:38 PM, Robert Muir <rcm...@gmail.com> wrote:
>>> one option is to wrap with constantscorer somewhere and still keep the
>>> optimization?
>>>
>>> On Tue, Mar 3, 2015 at 11:32 AM, Adrien Grand <jpou...@gmail.com> wrote:
>>>> OK, I found the reason. We have an optimization in disjunctions to
>>>> stop calling matches() after a single matching clause has been found
>>>> if scores are not needed, but it does not play well with the fact that
>>>> some scorers always call score() on the underlying clauses even if
>>>> scores are not needed (BooleanScorer in this case, maybe there are
>>>> other ones). So I'll disable the optimization. We'll need to better
>>>> document when it is legal to call score() if we want to bring it back.
>>>>
>>>> On Tue, Mar 3, 2015 at 3:57 PM, Adrien Grand <jpou...@gmail.com> wrote:
>>>>> I'm looking into it.
>>>>>
>>>>> On Tue, Mar 3, 2015 at 3:52 PM, Apache Jenkins Server
>>>>> <jenk...@builds.apache.org> wrote:
>>>>>> Build: https://builds.apache.org/job/Lucene-Solr-NightlyTests-5.x/775/
>>>>>>
>>>>>> 1 tests failed.
>>>>>> FAILED:  org.apache.lucene.search.TestLRUQueryCache.testRandom
>>>>>>
>>>>>> Error Message:
>>>>>>
>>>>>>
>>>>>> Stack Trace:
>>>>>> java.lang.AssertionError
>>>>>>         at 
>>>>>> __randomizedtesting.SeedInfo.seed([8AFB9C1E9D5CF8AF:F8B7B9112C3C4EDC]:0)
>>>>>>         at org.apache.lucene.search.TermScorer.score(TermScorer.java:70)
>>>>>>         at 
>>>>>> org.apache.lucene.search.DisjunctionSumScorer.score(DisjunctionSumScorer.java:46)
>>>>>>         at 
>>>>>> org.apache.lucene.search.DisjunctionScorer.score(DisjunctionScorer.java:219)
>>>>>>         at 
>>>>>> org.apache.lucene.search.ReqExclScorer.score(ReqExclScorer.java:121)
>>>>>>         at 
>>>>>> org.apache.lucene.search.BooleanScorer$OrCollector.collect(BooleanScorer.java:142)
>>>>>>         at 
>>>>>> org.apache.lucene.search.Weight$DefaultBulkScorer.scoreRange(Weight.java:181)
>>>>>>         at 
>>>>>> org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:171)
>>>>>>         at 
>>>>>> org.apache.lucene.search.BooleanScorer$BulkScorerAndDoc.score(BooleanScorer.java:60)
>>>>>>         at 
>>>>>> org.apache.lucene.search.BooleanScorer.scoreWindow(BooleanScorer.java:210)
>>>>>>         at 
>>>>>> org.apache.lucene.search.BooleanScorer.scoreWindow(BooleanScorer.java:264)
>>>>>>         at 
>>>>>> org.apache.lucene.search.BooleanScorer.score(BooleanScorer.java:289)
>>>>>>         at 
>>>>>> org.apache.lucene.search.AssertingBulkScorer.score(AssertingBulkScorer.java:79)
>>>>>>         at 
>>>>>> org.apache.lucene.search.AssertingBulkScorer.score(AssertingBulkScorer.java:63)
>>>>>>         at 
>>>>>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:694)
>>>>>>         at 
>>>>>> org.apache.lucene.search.AssertingIndexSearcher.search(AssertingIndexSearcher.java:102)
>>>>>>         at 
>>>>>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:408)
>>>>>>         at 
>>>>>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:617)
>>>>>>         at 
>>>>>> org.apache.lucene.search.IndexSearcher.count(IndexSearcher.java:290)
>>>>>>         at 
>>>>>> org.apache.lucene.search.TestLRUQueryCache.testRandom(TestLRUQueryCache.java:923)
>>>>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>         at 
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>>>>         at 
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>         at java.lang.reflect.Method.invoke(Method.java:606)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1627)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:836)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:872)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:886)
>>>>>>         at 
>>>>>> org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:50)
>>>>>>         at 
>>>>>> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:46)
>>>>>>         at 
>>>>>> org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:49)
>>>>>>         at 
>>>>>> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65)
>>>>>>         at 
>>>>>> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:365)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:798)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:458)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:845)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.RandomizedRunner$3.evaluate(RandomizedRunner.java:747)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.RandomizedRunner$4.evaluate(RandomizedRunner.java:781)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:792)
>>>>>>         at 
>>>>>> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:46)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>>>>         at 
>>>>>> org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:42)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:39)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:39)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>>>>         at 
>>>>>> org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:54)
>>>>>>         at 
>>>>>> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
>>>>>>         at 
>>>>>> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65)
>>>>>>         at 
>>>>>> org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:55)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>>>>>         at 
>>>>>> com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:365)
>>>>>>         at java.lang.Thread.run(Thread.java:745)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Build Log:
>>>>>> [...truncated 839 lines...]
>>>>>>    [junit4] Suite: org.apache.lucene.search.TestLRUQueryCache
>>>>>>    [junit4]   2> NOTE: download the large Jenkins line-docs file by 
>>>>>> running 'ant get-jenkins-line-docs' in the lucene directory.
>>>>>>    [junit4]   2> NOTE: reproduce with: ant test  
>>>>>> -Dtestcase=TestLRUQueryCache -Dtests.method=testRandom 
>>>>>> -Dtests.seed=8AFB9C1E9D5CF8AF -Dtests.multiplier=2 -Dtests.nightly=true 
>>>>>> -Dtests.slow=true 
>>>>>> -Dtests.linedocsfile=/home/jenkins/lucene-data/enwiki.random.lines.txt 
>>>>>> -Dtests.locale=en_ZA -Dtests.timezone=Africa/Porto-Novo 
>>>>>> -Dtests.asserts=true -Dtests.file.encoding=US-ASCII
>>>>>>    [junit4] FAILURE 19.5s J3 | TestLRUQueryCache.testRandom <<<
>>>>>>    [junit4]    > Throwable #1: java.lang.AssertionError
>>>>>>    [junit4]    >        at 
>>>>>> __randomizedtesting.SeedInfo.seed([8AFB9C1E9D5CF8AF:F8B7B9112C3C4EDC]:0)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.TermScorer.score(TermScorer.java:70)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.DisjunctionSumScorer.score(DisjunctionSumScorer.java:46)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.DisjunctionScorer.score(DisjunctionScorer.java:219)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.ReqExclScorer.score(ReqExclScorer.java:121)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.BooleanScorer$OrCollector.collect(BooleanScorer.java:142)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.Weight$DefaultBulkScorer.scoreRange(Weight.java:181)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:171)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.BooleanScorer$BulkScorerAndDoc.score(BooleanScorer.java:60)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.BooleanScorer.scoreWindow(BooleanScorer.java:210)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.BooleanScorer.scoreWindow(BooleanScorer.java:264)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.BooleanScorer.score(BooleanScorer.java:289)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.AssertingBulkScorer.score(AssertingBulkScorer.java:79)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.AssertingBulkScorer.score(AssertingBulkScorer.java:63)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:694)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.AssertingIndexSearcher.search(AssertingIndexSearcher.java:102)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:408)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:617)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.IndexSearcher.count(IndexSearcher.java:290)
>>>>>>    [junit4]    >        at 
>>>>>> org.apache.lucene.search.TestLRUQueryCache.testRandom(TestLRUQueryCache.java:923)
>>>>>>    [junit4]    >        at java.lang.Thread.run(Thread.java:745)
>>>>>>    [junit4]   2> NOTE: leaving temporary files on disk at: 
>>>>>> /usr/home/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-5.x/lucene/build/core/test/J3/temp/lucene.search.TestLRUQueryCache
>>>>>>  8AFB9C1E9D5CF8AF-001
>>>>>>    [junit4]   2> NOTE: test params are: codec=Asserting(Lucene50), 
>>>>>> sim=DefaultSimilarity, locale=en_ZA, timezone=Africa/Porto-Novo
>>>>>>    [junit4]   2> NOTE: FreeBSD 9.1-RELEASE-p3 amd64/Oracle Corporation 
>>>>>> 1.7.0_65 (64-bit)/cpus=16,threads=1,free=148303864,total=313524224
>>>>>>    [junit4]   2> NOTE: All tests run in this JVM: 
>>>>>> [FuzzyTermOnShortTermsTest, TestByteSlices, TestEarlyTermination, 
>>>>>> TestRollback, TestWildcard, TestDocCount, TestMmapDirectory, 
>>>>>> TestSpanExplanationsOfNonMatches, TestBagOfPositions, 
>>>>>> TestInPlaceMergeSorter, TestSparseFixedBitSet, TestAutomaton, Nested1, 
>>>>>> TestFilteredQuery, TestLucene50TermVectorsFormat, 
>>>>>> TestDocValuesTermsQuery, TestDocBoost, TestPhraseQuery, TestWindowsMMap, 
>>>>>> TestFastDecompressionMode, TestMultiLevelSkipList, 
>>>>>> TestCachingWrapperQuery, TestMatchAllDocsQuery, TestNamedSPILoader, 
>>>>>> TestBytesRefHash, TestPerFieldPostingsFormat2, TestForUtil, 
>>>>>> TestIndexWriterForceMerge, TestIndexableField, TestLock, 
>>>>>> TestMaxTermFrequency, TestIndexWriterOnJRECrash, TestLRUQueryCache]
>>>>>>    [junit4] Completed on J3 in 25.65s, 12 tests, 1 failure <<< FAILURES!
>>>>>>
>>>>>> [...truncated 995 lines...]
>>>>>> BUILD FAILED
>>>>>> /usr/home/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-5.x/build.xml:536:
>>>>>>  The following error occurred while executing this line:
>>>>>> /usr/home/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-5.x/build.xml:477:
>>>>>>  The following error occurred while executing this line:
>>>>>> /usr/home/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-5.x/build.xml:61:
>>>>>>  The following error occurred while executing this line:
>>>>>> /usr/home/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-5.x/extra-targets.xml:39:
>>>>>>  The following error occurred while executing this line:
>>>>>> /usr/home/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-5.x/lucene/build.xml:49:
>>>>>>  The following error occurred while executing this line:
>>>>>> /usr/home/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-5.x/lucene/common-build.xml:1370:
>>>>>>  The following error occurred while executing this line:
>>>>>> /usr/home/jenkins/jenkins-slave/workspace/Lucene-Solr-NightlyTests-5.x/lucene/common-build.xml:976:
>>>>>>  There were test failures: 419 suites, 3370 tests, 1 failure, 39 ignored 
>>>>>> (29 assumptions)
>>>>>>
>>>>>> Total time: 48 minutes 1 second
>>>>>> Build step 'Invoke Ant' marked build as failure
>>>>>> Archiving artifacts
>>>>>> Sending artifact delta relative to Lucene-Solr-NightlyTests-5.x #716
>>>>>> Archived 5 artifacts
>>>>>> Archive block size is 32768
>>>>>> Received 0 blocks and 3613290 bytes
>>>>>> Compression is 0.0%
>>>>>> Took 1 sec
>>>>>> Recording test results
>>>>>> Email was triggered for: Failure
>>>>>> Sending email for trigger: Failure
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
>>>>>> For additional commands, e-mail: dev-h...@lucene.apache.org
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Adrien
>>>>
>>>>
>>>>
>>>> --
>>>> Adrien
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
>>>> For additional commands, e-mail: dev-h...@lucene.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
>>> For additional commands, e-mail: dev-h...@lucene.apache.org
>>>
>>
>>
>>
>> --
>> Adrien
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
>> For additional commands, e-mail: dev-h...@lucene.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: dev-h...@lucene.apache.org
>



-- 
Adrien

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to