apache / apache/lucene

Test2BDocs.test2BDocs error java.lang.ArrayIndexOutOfBoundsException [LUCENE-8926]

Open
#9,969 2 comments 0 reactions 0 assignees View on GitHub
affects-version:8.1.1 legacy-jira-priority:Major type:bug
Dominant language
Java
Stars
3.6k
Forks
1.4k
Avg merge
2d 11h
Merged PRs (30d)
88

Description

```
HEARTBEAT J2 PID(27364@bobby): 2019-07-16T01:43:37, stalled for 190s at: Test2BPoints.test2D
1> indexed: 0
1> indexed: 10000000
1> indexed: 20000000
...
1> indexed: 2130000000
1> indexed: 2140000000
1> verifying...
2> NOTE: reproduce with: ant test -Dtestcase=Test2BDocs -Dtests.method=test2BDocs -Dtests.seed=ECB69064FDA0F2A6 -Dtests.slow=true -Dtests.badapples=true -Dtests.locale=zh -Dtests.timezone=Europe/Zurich -Dtests.asserts=true -Dtests.file.encoding=UTF-8
[00:41:02.330] ERROR 3755s J1 | Test2BDocs.test2BDocs <<<
> Throwable #1: java.lang.ArrayIndexOutOfBoundsException
> at __randomizedtesting.SeedInfo.seed([ECB69064FDA0F2A6:2B65388480C84F43]:0)
> at org.apache.lucene.codecs.lucene50.Lucene50PostingsReader$BlockImpactsEverythingEnum.advance(Lucene50PostingsReader.java:1605)
> at org.apache.lucene.codecs.lucene50.Lucene50PostingsReader$BlockImpactsEverythingEnum.nextDoc(Lucene50PostingsReader.java:1583)
> at org.apache.lucene.index.CheckIndex.checkFields(CheckIndex.java:1526)
> at org.apache.lucene.index.CheckIndex.testPostings(CheckIndex.java:1871)
> at org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:724)
> at org.apache.lucene.util.TestUtil.checkIndex(TestUtil.java:280)
> at org.apache.lucene.store.MockDirectoryWrapper.close(MockDirectoryWrapper.java:862)
> at org.apache.lucene.index.Test2BDocs.test2BDocs(Test2BDocs.java:127)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
> at java.lang.reflect.Method.invoke(Method.java:508)
> at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750)
> at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:938)
> at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:974)
> at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988)
> at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:49)
> at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
> at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48)
> at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64)
> at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47)
> at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
> at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368)
> at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817)
> at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468)
> at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947)
> at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832)
> at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883)
> at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894)
> at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
> at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
> at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:41)
> at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
> at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
> 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:53)
> at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:47)
> at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:64)
> at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:54)
> at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
> at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368)
> at java.lang.Thread.run(Thread.java:818)
2> NOTE: leaving temporary files on disk at: /home/danielgb/lucene-solr/lucene/build/core/test/J1/temp/lucene.index.Test2BDocs_ECB69064FDA0F2A6-001
2> NOTE: test params are: codec=Asserting(Lucene80): {}, docValues:{}, maxPointsInLeafNode=828, maxMBSortInHeap=7.547897111277008, sim=Asserting(org.apache.lucene.search.similarities.AssertingSimilarity@2f22f488), locale=zh, timezone=Europe/Zurich
2> NOTE: Linux 3.10.0-957.21.3.el7.ppc64le ppc64le/IBM Corporation 1.8.0_211 (64-bit)/cpus=10,threads=1,free=414017160,total=712572928
2> NOTE: All tests run in this JVM: [TestDoc, Test2BDocs]
```
Build at commit 081e2ef2c05e017e87a2aef2a4f55067fbba5cb4

---
Migrated from [LUCENE-8926](https://issues.apache.org/jira/browse/LUCENE-8926) by Daniel Black, updated Jul 18 2019

Contributor guide

Open the contributing guide

Research direction

Start with the reproduction command in Test2BDocs.test2BDocs and inspect the failing path through Lucene50PostingsReader.java, CheckIndex.java, and Test2BDocs.java:127. Reproduce the failure with the recorded seed and test parameters, then determine the relevant regression boundary. Done means the test and index check complete without the ArrayIndexOutOfBoundsException.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
search
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.