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