mikemccand commented on PR #633:
URL: https://github.com/apache/lucene/pull/633#issuecomment-1133249474

   Hmm I beasted the PR on current `main` branch using `./gradlew 
:lucene:core:test --tests "org.apache.lucene.index.TestAddIndexes" 
-Dtests.iters=500 `.
   
   The first time, it seemed to deadlock, but I screwed up trying to get the 
thread stacks.
   
   The 2nd time it failed with this exciting failure!  It looks like we are 
missing some locking on updating IW's `HashMap` tracking merges?:
   
   ```
   org.apache.lucene.index.TestAddIndexes > test suite's output saved to 
/l/vigya/lucene/core/build/test-results/test/outputs/OUTPUT-org.apache.lucene.index.TestAddIndexes.txt,
 copied below:
     1> java.util.ConcurrentModificationException
     1>    at 
java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1597)
     1>    at java.base/java.util.HashMap$KeyIterator.next(HashMap.java:1620)
     1>    at 
org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:2122)
     1>    at 
org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:2081)
     1>    at 
org.apache.lucene.index.TestAddIndexes$CommitAndAddIndexes3.doBody(TestAddIndexes.java:1221)
     1>    at 
org.apache.lucene.index.TestAddIndexes$RunAddIndexesThreads$1.run(TestAddIndexes.java:1023)
      >     java.lang.AssertionError
      >         at 
__randomizedtesting.SeedInfo.seed([3AB557F4BFC8763A:D625EE2D285D2CAD]:0)
      >         at org.junit.Assert.fail(Assert.java:87)
      >         at org.junit.Assert.assertTrue(Assert.java:42)
      >         at org.junit.Assert.assertTrue(Assert.java:53)
      >         at 
org.apache.lucene.index.TestAddIndexes.testAddIndexesWithRollback(TestAddIndexes.java:1305)
      >         at 
jdk.internal.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
      >         at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      >         at java.base/java.lang.reflect.Method.invoke(Method.java:568)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1754)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:942)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:978)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:992)
      >         at 
org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:44)
      >         at 
org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
      >         at 
org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
      >         at 
org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
      >         at 
org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
      >         at org.junit.rules.RunRules.evaluate(RunRules.java:20)
      >         at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
      >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:370)
      >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:819)
      >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:470)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:951)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:836)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:887)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:898)
      >         at 
org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
      >         at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
      >         at 
org.apache.lucene.tests.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38)
      >         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 
org.apache.lucene.tests.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
      >         at 
org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
      >         at 
org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
      >         at 
org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
      >         at 
org.apache.lucene.tests.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:47)
      >         at org.junit.rules.RunRules.evaluate(RunRules.java:20)
      >         at 
com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
      >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:370)
      >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl.lambda$forkTimeoutingTask$0(ThreadLeakControl.java:826)
      >         at java.base/java.lang.Thread.run(Thread.java:833)
     2> NOTE: reproduce with: gradlew test --tests 
TestAddIndexes.testAddIndexesWithRollback -Dtests.seed=3AB557F4BFC8763A 
-Dtests.locale=ru-KZ -Dtests.timezone=Europe/Vilnius -Dtests.asserts=true 
-Dtests\
   .file.encoding=UTF-8
     2> NOTE: leaving temporary files on disk at: 
/l/vigya/lucene/core/build/tmp/tests-tmp/lucene.index.TestAddIndexes_3AB557F4BFC8763A-001
     2> NOTE: test params are: codec=Asserting(Lucene92), 
sim=Asserting(RandomSimilarity(queryNorm=false): {foo=DFR I(ne)L1, id=DFR 
I(n)LZ(0.3), content=F2LOG}), locale=ru-KZ, timezone=Europe/Vilnius
     2> NOTE: Linux 5.17.5-arch1-1 amd64/Oracle Corporation 17.0.1 
(64-bit)/cpus=128,threads=1,free=97508840,total=536870912
     2> NOTE: All tests run in this JVM: [TestAddIndexes]
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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

Reply via email to