benwtrent commented on PR #13475:
URL: https://github.com/apache/lucene/pull/13475#issuecomment-2158370906

   After adjusting the assertion, some other assertions are now being 
triggered. 
   
   ```
       java.lang.AssertionError: [body] norms must not be cached twice
           at 
org.apache.lucene.index.SortingCodecReader.assertCreatedOnlyOnce(SortingCodecReader.java:737)
           at 
org.apache.lucene.index.SortingCodecReader.getOrCreate(SortingCodecReader.java:721)
           at 
org.apache.lucene.index.SortingCodecReader.getOrCreateNorms(SortingCodecReader.java:714)
           at 
org.apache.lucene.index.SortingCodecReader$6.getNorms(SortingCodecReader.java:549)
           at 
org.apache.lucene.codecs.NormsConsumer$1.getNorms(NormsConsumer.java:123)
           at 
org.apache.lucene.codecs.lucene90.Lucene90NormsConsumer.addNormsField(Lucene90NormsConsumer.java:135)
           at 
org.apache.lucene.codecs.NormsConsumer.mergeNormsField(NormsConsumer.java:106)
           at 
org.apache.lucene.codecs.NormsConsumer.merge(NormsConsumer.java:74)
           at 
org.apache.lucene.index.SegmentMerger.mergeNorms(SegmentMerger.java:219)
           at 
org.apache.lucene.index.SegmentMerger.mergeWithLogging(SegmentMerger.java:325)
           at 
org.apache.lucene.index.SegmentMerger.lambda$merge$0(SegmentMerger.java:143)
           at 
org.apache.lucene.search.TaskExecutor$TaskGroup.lambda$createTask$0(TaskExecutor.java:117)
           at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
           at 
org.apache.lucene.index.ConcurrentMergeScheduler$CachedExecutor.lambda$execute$0(ConcurrentMergeScheduler.java:982)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
           at java.base/java.lang.Thread.run(Thread.java:1583)
   ```
   
   And at least one NPE:
   
   ```
   org.apache.lucene.index.TestCodecHoldsOpenFiles > test suite's output saved 
to 
/Users/benjamintrent/Projects/lucene/lucene/core/build/test-results/test/outputs/OUTPUT-org.apache.lucene.index.TestCodecHoldsOpenFiles.txt,
 copied below:
      >     java.lang.IllegalStateException: this writer hit an unrecoverable 
error; cannot complete forceMerge
      >         at 
__randomizedtesting.SeedInfo.seed([AA3C2FCDA0773874:226810170E8B558C]:0)
      >         at 
org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:2161)
      >         at 
org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:2101)
      >         at 
org.apache.lucene.tests.index.RandomIndexWriter.doRandomForceMerge(RandomIndexWriter.java:466)
      >         at 
org.apache.lucene.tests.index.RandomIndexWriter.getReader(RandomIndexWriter.java:485)
      >         at 
org.apache.lucene.tests.index.RandomIndexWriter.getReader(RandomIndexWriter.java:427)
      >         at 
org.apache.lucene.index.TestCodecHoldsOpenFiles.test(TestCodecHoldsOpenFiles.java:44)
      >         at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      >         at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996)
      >         at 
org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
      >         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:390)
      >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
      >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:840)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:891)
      >         at 
com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:902)
      >         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:390)
      >         at 
com.carrotsearch.randomizedtesting.ThreadLeakControl.lambda$forkTimeoutingTask$0(ThreadLeakControl.java:850)
      >         at java.base/java.lang.Thread.run(Thread.java:1583)
      >
      >         Caused by:
      >         java.lang.NullPointerException: Cannot invoke 
"org.apache.lucene.search.Sort.getSort()" because the return value of 
"org.apache.lucene.index.LeafMetaData.getSort()" is null
      >             at 
org.apache.lucene.index.SortingCodecReader.assertCreatedOnlyOnce(SortingCodecReader.java:739)
      >             at 
org.apache.lucene.index.SortingCodecReader.getOrCreate(SortingCodecReader.java:721)
      >             at 
org.apache.lucene.index.SortingCodecReader.getOrCreateDV(SortingCodecReader.java:759)
      >             at 
org.apache.lucene.index.SortingCodecReader$7.getNumeric(SortingCodecReader.java:571)
      >             at 
org.apache.lucene.codecs.DocValuesConsumer$1.getNumeric(DocValuesConsumer.java:201)
      >             at 
org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer$1.getSortedNumeric(Lucene90DocValuesConsumer.java:138)
      >             at 
org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.writeValues(Lucene90DocValuesConsumer.java:188)
      >             at 
org.apache.lucene.codecs.lucene90.Lucene90DocValuesConsumer.addNumericField(Lucene90DocValuesConsumer.java:133)
      >             at 
org.apache.lucene.tests.codecs.asserting.AssertingDocValuesFormat$AssertingDocValuesConsumer.addNumericField(AssertingDocValuesFormat.java:87)
      >             at 
org.apache.lucene.codecs.DocValuesConsumer.mergeNumericField(DocValuesConsumer.java:183)
      >             at 
org.apache.lucene.codecs.DocValuesConsumer.merge(DocValuesConsumer.java:142)
      >             at 
org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsWriter.merge(PerFieldDocValuesFormat.java:151)
      >             at 
org.apache.lucene.index.SegmentMerger.mergeDocValues(SegmentMerger.java:205)
      >             at 
org.apache.lucene.index.SegmentMerger.mergeWithLogging(SegmentMerger.java:325)
      >             at 
org.apache.lucene.index.SegmentMerger.lambda$merge$1(SegmentMerger.java:155)
      >             at 
org.apache.lucene.search.TaskExecutor$TaskGroup.lambda$createTask$0(TaskExecutor.java:117)
      >             at 
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
      >             at 
org.apache.lucene.index.ConcurrentMergeScheduler$CachedExecutor.lambda$execute$0(ConcurrentMergeScheduler.java:982)
      >             at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
      >             at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
      >             ... 1 more
   ```


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to