The exception was thrown because TimeLimitingBulkScorer passed in a "max" which is larger than the maxDoc in the segment. And then MaxScoreBulkScorer directly returns the rangeEnd as the next estimation here <https://github.com/apache/lucene/blob/main/lucene/core/src/java/org/apache/lucene/search/MaxScoreBulkScorer.java#L187> and finally makes AssertingBulkScorer unhappy because it expects a NO_MORE_DOC in case that the "max" or "next" is larger than maxDoc. (here <https://github.com/apache/lucene/blob/main/lucene/test-framework/src/java/org/apache/lucene/tests/search/AssertingBulkScorer.java#L104> )
I'm not super sure what's the right fix, seems to me neither TimeLimitingBulkScorer nor MaxScoreBulkScorer has violated the contract (as we never state in javadoc guarantee that if there's no more doc the method will return NO_MORE_DOC), so perhaps we should just let AssertingBulkScorer tolerate the case? Patrick On Mon, Jun 26, 2023 at 10:54 PM Policeman Jenkins Server < [email protected]> wrote: > Build: https://jenkins.thetaphi.de/job/Lucene-9.x-Linux/11322/ > Java: 64bit/hotspot/jdk-17.0.5 -XX:-UseCompressedOops -XX:+UseSerialGC > > 1 tests failed. > FAILED: org.apache.lucene.expressions.TestExpressionSorts.testQueries > > Error Message: > java.lang.AssertionError > > Stack Trace: > java.lang.AssertionError > at > __randomizedtesting.SeedInfo.seed([9D337074B96D1F8C:C1BDBCAFA304AA22]:0) > at [email protected] > /org.apache.lucene.tests.search.AssertingBulkScorer.score(AssertingBulkScorer.java:105) > at [email protected] > /org.apache.lucene.search.TimeLimitingBulkScorer.score(TimeLimitingBulkScorer.java:82) > at [email protected] > /org.apache.lucene.search.BulkScorer.score(BulkScorer.java:38) > at [email protected] > /org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:776) > at [email protected] > /org.apache.lucene.tests.search.AssertingIndexSearcher.search(AssertingIndexSearcher.java:78) > at [email protected] > /org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:694) > at [email protected] > /org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:688) > at [email protected] > /org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:668) > at [email protected] > /org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:571) > at > org.apache.lucene.expressions.TestExpressionSorts.assertQuery(TestExpressionSorts.java:119) > at > org.apache.lucene.expressions.TestExpressionSorts.assertQuery(TestExpressionSorts.java:113) > at > org.apache.lucene.expressions.TestExpressionSorts.testQueries(TestExpressionSorts.java:92) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:568) > at [email protected] > /com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758) > at [email protected] > /com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946) > at [email protected] > /com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982) > at [email protected] > /com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996) > at [email protected] > /org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48) > at [email protected] > /org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43) > at [email protected] > /org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45) > at [email protected] > /org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60) > at [email protected] > /org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44) > at [email protected] > /org.junit.rules.RunRules.evaluate(RunRules.java:20) > at [email protected] > /com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) > at [email protected] > /com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390) > at [email protected] > /com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843) > at [email protected] > /com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490) > at [email protected] > /com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955) > at [email protected] > /com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:840) > at [email protected] > /com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:891) > at [email protected] > /com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:902) > at [email protected] > /org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43) > at [email protected] > /com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) > at [email protected] > /org.apache.lucene.tests.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38) > at [email protected] > /com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) > at [email protected] > /com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40) > at [email protected] > /com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) > at [email protected] > /com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) > at [email protected] > /org.apache.lucene.tests.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53) > at [email protected] > /org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43) > at [email protected] > /org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44) > at [email protected] > /org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60) > at [email protected] > /org.apache.lucene.tests.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:47) > at [email protected] > /org.junit.rules.RunRules.evaluate(RunRules.java:20) > at [email protected] > /com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36) > at [email protected] > /com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390) > at [email protected] > /com.carrotsearch.randomizedtesting.ThreadLeakControl.lambda$forkTimeoutingTask$0(ThreadLeakControl.java:850) > at java.base/java.lang.Thread.run(Thread.java:833) > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected]
