You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by Luca Cavanna <ja...@apache.org> on 2024/09/11 05:39:03 UTC
Re: [JENKINS] Lucene-main-Linux (64bit/hotspot/jdk-21.0.1) - Build # 50111 - Unstable!
This may have to do with intra-segment concurrency. I will take a look.
On Wed, Sep 11, 2024, 05:39 Policeman Jenkins Server <je...@thetaphi.de>
wrote:
> Build: https://jenkins.thetaphi.de/job/Lucene-main-Linux/50111/
> Java: 64bit/hotspot/jdk-21.0.1 -XX:-UseCompressedOops -XX:+UseSerialGC
>
> 1 tests failed.
> FAILED:
> org.apache.lucene.sandbox.search.TestLargeNumHitsTopDocsCollector.testNoPQBuild
>
> Error Message:
> java.lang.OutOfMemoryError: Java heap space
>
> Stack Trace:
> java.lang.OutOfMemoryError: Java heap space
> at
> __randomizedtesting.SeedInfo.seed([2E3BF44EC3457CCA:DA6EA4532975FABD]:0)
> at org.apache.lucene.core@10.0.0-SNAPSHOT
> /org.apache.lucene.search.HitQueue.lambda$new$0(HitQueue.java:70)
> at org.apache.lucene.core@10.0.0-SNAPSHOT/org.apache.lucene.search.HitQueue$$Lambda/0x000071d2ec233150.get(Unknown
> Source)
> at org.apache.lucene.core@10.0.0-SNAPSHOT
> /org.apache.lucene.util.PriorityQueue.<init>(PriorityQueue.java:105)
> at org.apache.lucene.core@10.0.0-SNAPSHOT
> /org.apache.lucene.search.HitQueue.<init>(HitQueue.java:63)
> at org.apache.lucene.core@10.0.0-SNAPSHOT
> /org.apache.lucene.search.TopScoreDocCollector.<init>(TopScoreDocCollector.java:203)
> at org.apache.lucene.core@10.0.0-SNAPSHOT
> /org.apache.lucene.search.TopScoreDocCollector$SimpleTopScoreDocCollector.<init>(TopScoreDocCollector.java:50)
> at org.apache.lucene.core@10.0.0-SNAPSHOT
> /org.apache.lucene.search.TopScoreDocCollectorManager.newCollector(TopScoreDocCollectorManager.java:140)
> at org.apache.lucene.core@10.0.0-SNAPSHOT
> /org.apache.lucene.search.TopScoreDocCollectorManager.newCollector(TopScoreDocCollectorManager.java:28)
> at org.apache.lucene.core@10.0.0-SNAPSHOT
> /org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:741)
> at org.apache.lucene.core@10.0.0-SNAPSHOT
> /org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:725)
> at
> org.apache.lucene.sandbox.search.TestLargeNumHitsTopDocsCollector.testNoPQBuild(TestLargeNumHitsTopDocsCollector.java:111)
> at
> java.base/java.lang.invoke.LambdaForm$DMH/0x000071d2ec114000.invokeVirtual(LambdaForm$DMH)
> at
> java.base/java.lang.invoke.LambdaForm$MH/0x000071d2ec0bc800.invoke(LambdaForm$MH)
> at
> java.base/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder)
> at
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:153)
> at
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
> at java.base/java.lang.reflect.Method.invoke(Method.java:580)
> at randomizedtesting.runner@2.8.1
> /com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)
> at randomizedtesting.runner@2.8.1
> /com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
> at randomizedtesting.runner@2.8.1
> /com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982)
> at randomizedtesting.runner@2.8.1
> /com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996)
> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
> /org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
> /org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
> /org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
> /org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
> /org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
> at junit@4.13.1
> /org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at randomizedtesting.runner@2.8.1
> /com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
> at randomizedtesting.runner@2.8.1
> /com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
> at randomizedtesting.runner@2.8.1
> /com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
> at randomizedtesting.runner@2.8.1
> /com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
> at randomizedtesting.runner@2.8.1
> /com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: builds-unsubscribe@lucene.apache.org
> For additional commands, e-mail: builds-help@lucene.apache.org
Re: [JENKINS] Lucene-main-Linux (64bit/hotspot/jdk-21.0.1) - Build # 50111 - Unstable!
Posted by Luca Cavanna <ja...@apache.org>.
I opened https://github.com/apache/lucene/pull/13775 with a proposed
solution.
On Thu, Sep 12, 2024 at 11:07 AM Luca Cavanna <ja...@apache.org> wrote:
> The problem here is that TopScoreDocCollectorManager creates a priority
> queue of 250_000 for every collector it creates. This test only ever
> indexes max 1000 documents. In the case I examined we had 8 segments, which
> get partitioned into 5 partitions each. That means we will build 40
> priority queues of 250_000 items. This is a bit of an extreme case that's
> far from reality, yet I wonder, is the problem the number of partitions or
> the size of the priority queue, or both?
>
> On Wed, Sep 11, 2024 at 7:39 AM Luca Cavanna <ja...@apache.org> wrote:
>
>> This may have to do with intra-segment concurrency. I will take a look.
>>
>> On Wed, Sep 11, 2024, 05:39 Policeman Jenkins Server <je...@thetaphi.de>
>> wrote:
>>
>>> Build: https://jenkins.thetaphi.de/job/Lucene-main-Linux/50111/
>>> Java: 64bit/hotspot/jdk-21.0.1 -XX:-UseCompressedOops -XX:+UseSerialGC
>>>
>>> 1 tests failed.
>>> FAILED:
>>> org.apache.lucene.sandbox.search.TestLargeNumHitsTopDocsCollector.testNoPQBuild
>>>
>>> Error Message:
>>> java.lang.OutOfMemoryError: Java heap space
>>>
>>> Stack Trace:
>>> java.lang.OutOfMemoryError: Java heap space
>>> at
>>> __randomizedtesting.SeedInfo.seed([2E3BF44EC3457CCA:DA6EA4532975FABD]:0)
>>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>>> /org.apache.lucene.search.HitQueue.lambda$new$0(HitQueue.java:70)
>>> at org.apache.lucene.core@10.0.0-SNAPSHOT/org.apache.lucene.search.HitQueue$$Lambda/0x000071d2ec233150.get(Unknown
>>> Source)
>>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>>> /org.apache.lucene.util.PriorityQueue.<init>(PriorityQueue.java:105)
>>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>>> /org.apache.lucene.search.HitQueue.<init>(HitQueue.java:63)
>>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>>> /org.apache.lucene.search.TopScoreDocCollector.<init>(TopScoreDocCollector.java:203)
>>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>>> /org.apache.lucene.search.TopScoreDocCollector$SimpleTopScoreDocCollector.<init>(TopScoreDocCollector.java:50)
>>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>>> /org.apache.lucene.search.TopScoreDocCollectorManager.newCollector(TopScoreDocCollectorManager.java:140)
>>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>>> /org.apache.lucene.search.TopScoreDocCollectorManager.newCollector(TopScoreDocCollectorManager.java:28)
>>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>>> /org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:741)
>>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>>> /org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:725)
>>> at
>>> org.apache.lucene.sandbox.search.TestLargeNumHitsTopDocsCollector.testNoPQBuild(TestLargeNumHitsTopDocsCollector.java:111)
>>> at
>>> java.base/java.lang.invoke.LambdaForm$DMH/0x000071d2ec114000.invokeVirtual(LambdaForm$DMH)
>>> at
>>> java.base/java.lang.invoke.LambdaForm$MH/0x000071d2ec0bc800.invoke(LambdaForm$MH)
>>> at
>>> java.base/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder)
>>> at
>>> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:153)
>>> at
>>> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>>> at java.base/java.lang.reflect.Method.invoke(Method.java:580)
>>> at randomizedtesting.runner@2.8.1
>>> /com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)
>>> at randomizedtesting.runner@2.8.1
>>> /com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
>>> at randomizedtesting.runner@2.8.1
>>> /com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982)
>>> at randomizedtesting.runner@2.8.1
>>> /com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996)
>>> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
>>> /org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
>>> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
>>> /org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
>>> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
>>> /org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
>>> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
>>> /org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
>>> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
>>> /org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
>>> at junit@4.13.1
>>> /org.junit.rules.RunRules.evaluate(RunRules.java:20)
>>> at randomizedtesting.runner@2.8.1
>>> /com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>>> at randomizedtesting.runner@2.8.1
>>> /com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
>>> at randomizedtesting.runner@2.8.1
>>> /com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
>>> at randomizedtesting.runner@2.8.1
>>> /com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
>>> at randomizedtesting.runner@2.8.1
>>> /com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: builds-unsubscribe@lucene.apache.org
>>> For additional commands, e-mail: builds-help@lucene.apache.org
>>
>>
Re: [JENKINS] Lucene-main-Linux (64bit/hotspot/jdk-21.0.1) - Build # 50111 - Unstable!
Posted by Luca Cavanna <ja...@apache.org>.
The problem here is that TopScoreDocCollectorManager creates a priority
queue of 250_000 for every collector it creates. This test only ever
indexes max 1000 documents. In the case I examined we had 8 segments, which
get partitioned into 5 partitions each. That means we will build 40
priority queues of 250_000 items. This is a bit of an extreme case that's
far from reality, yet I wonder, is the problem the number of partitions or
the size of the priority queue, or both?
On Wed, Sep 11, 2024 at 7:39 AM Luca Cavanna <ja...@apache.org> wrote:
> This may have to do with intra-segment concurrency. I will take a look.
>
> On Wed, Sep 11, 2024, 05:39 Policeman Jenkins Server <je...@thetaphi.de>
> wrote:
>
>> Build: https://jenkins.thetaphi.de/job/Lucene-main-Linux/50111/
>> Java: 64bit/hotspot/jdk-21.0.1 -XX:-UseCompressedOops -XX:+UseSerialGC
>>
>> 1 tests failed.
>> FAILED:
>> org.apache.lucene.sandbox.search.TestLargeNumHitsTopDocsCollector.testNoPQBuild
>>
>> Error Message:
>> java.lang.OutOfMemoryError: Java heap space
>>
>> Stack Trace:
>> java.lang.OutOfMemoryError: Java heap space
>> at
>> __randomizedtesting.SeedInfo.seed([2E3BF44EC3457CCA:DA6EA4532975FABD]:0)
>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>> /org.apache.lucene.search.HitQueue.lambda$new$0(HitQueue.java:70)
>> at org.apache.lucene.core@10.0.0-SNAPSHOT/org.apache.lucene.search.HitQueue$$Lambda/0x000071d2ec233150.get(Unknown
>> Source)
>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>> /org.apache.lucene.util.PriorityQueue.<init>(PriorityQueue.java:105)
>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>> /org.apache.lucene.search.HitQueue.<init>(HitQueue.java:63)
>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>> /org.apache.lucene.search.TopScoreDocCollector.<init>(TopScoreDocCollector.java:203)
>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>> /org.apache.lucene.search.TopScoreDocCollector$SimpleTopScoreDocCollector.<init>(TopScoreDocCollector.java:50)
>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>> /org.apache.lucene.search.TopScoreDocCollectorManager.newCollector(TopScoreDocCollectorManager.java:140)
>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>> /org.apache.lucene.search.TopScoreDocCollectorManager.newCollector(TopScoreDocCollectorManager.java:28)
>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>> /org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:741)
>> at org.apache.lucene.core@10.0.0-SNAPSHOT
>> /org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:725)
>> at
>> org.apache.lucene.sandbox.search.TestLargeNumHitsTopDocsCollector.testNoPQBuild(TestLargeNumHitsTopDocsCollector.java:111)
>> at
>> java.base/java.lang.invoke.LambdaForm$DMH/0x000071d2ec114000.invokeVirtual(LambdaForm$DMH)
>> at
>> java.base/java.lang.invoke.LambdaForm$MH/0x000071d2ec0bc800.invoke(LambdaForm$MH)
>> at
>> java.base/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder)
>> at
>> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:153)
>> at
>> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>> at java.base/java.lang.reflect.Method.invoke(Method.java:580)
>> at randomizedtesting.runner@2.8.1
>> /com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)
>> at randomizedtesting.runner@2.8.1
>> /com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
>> at randomizedtesting.runner@2.8.1
>> /com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982)
>> at randomizedtesting.runner@2.8.1
>> /com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996)
>> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
>> /org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
>> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
>> /org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
>> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
>> /org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
>> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
>> /org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
>> at org.apache.lucene.test_framework@10.0.0-SNAPSHOT
>> /org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
>> at junit@4.13.1
>> /org.junit.rules.RunRules.evaluate(RunRules.java:20)
>> at randomizedtesting.runner@2.8.1
>> /com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
>> at randomizedtesting.runner@2.8.1
>> /com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
>> at randomizedtesting.runner@2.8.1
>> /com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
>> at randomizedtesting.runner@2.8.1
>> /com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
>> at randomizedtesting.runner@2.8.1
>> /com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: builds-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: builds-help@lucene.apache.org
>
>