Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-8785

TestIndexWriterDelete.testDeleteAllNoDeadlock failure

Details

    • Bug
    • Status: Reopened
    • Minor
    • Resolution: Fixed
    • 7.6
    • 7.7.2, 8.1, 9.0
    • core/index
    • None
    • OpenJDK 1.8.0_202

    • New

    Description

      I was running Lucene's core tests on an i3.16xlarge EC2 instance (64 cores), and hit this random yet spooky failure:

         [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestIndexWriterDelete -Dtests.method=testDeleteAllNoDeadLock -Dtests.seed=952BE262BA547C1 -Dtests.slow=true -Dtests.badapples=true -Dtests.locale=ar-YE -Dtests.timezone=Europe/Lisbon -Dtests.as\
      
      serts=true -Dtests.file.encoding=US-ASCII
      
         [junit4] ERROR   0.16s J3 | TestIndexWriterDelete.testDeleteAllNoDeadLock <<<
      
         [junit4]    > Throwable #1: com.carrotsearch.randomizedtesting.UncaughtExceptionError: Captured an uncaught exception in thread: Thread[id=36, name=Thread-2, state=RUNNABLE, group=TGRP-TestIndexWriterDelete]
      
         [junit4]    >        at __randomizedtesting.SeedInfo.seed([952BE262BA547C1:3A4B5138AB66FD97]:0)
      
         [junit4]    > Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: field number 0 is already mapped to field name "null", not "content"
      
         [junit4]    >        at __randomizedtesting.SeedInfo.seed([952BE262BA547C1]:0)
      
         [junit4]    >        at org.apache.lucene.index.TestIndexWriterDelete$1.run(TestIndexWriterDelete.java:332)
      
         [junit4]    > Caused by: java.lang.IllegalArgumentException: field number 0 is already mapped to field name "null", not "content"
      
         [junit4]    >        at org.apache.lucene.index.FieldInfos$FieldNumbers.verifyConsistent(FieldInfos.java:310)
      
         [junit4]    >        at org.apache.lucene.index.FieldInfos$Builder.getOrAdd(FieldInfos.java:415)
      
         [junit4]    >        at org.apache.lucene.index.DefaultIndexingChain.getOrAddField(DefaultIndexingChain.java:650)
      
         [junit4]    >        at org.apache.lucene.index.DefaultIndexingChain.processField(DefaultIndexingChain.java:428)
      
         [junit4]    >        at org.apache.lucene.index.DefaultIndexingChain.processDocument(DefaultIndexingChain.java:394)
      
         [junit4]    >        at org.apache.lucene.index.DocumentsWriterPerThread.updateDocuments(DocumentsWriterPerThread.java:297)
      
         [junit4]    >        at org.apache.lucene.index.DocumentsWriter.updateDocuments(DocumentsWriter.java:450)
      
         [junit4]    >        at org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1291)
      
         [junit4]    >        at org.apache.lucene.index.IndexWriter.addDocuments(IndexWriter.java:1264)
      
         [junit4]    >        at org.apache.lucene.index.RandomIndexWriter.addDocument(RandomIndexWriter.java:159)
      
         [junit4]    >        at org.apache.lucene.index.TestIndexWriterDelete$1.run(TestIndexWriterDelete.java:326)

      It does not reproduce unfortunately ... but maybe there is some subtle thread safety issue in this code ... this is a hairy part of Lucene

      Attachments

        Issue Links

          Activity

            People

              simonw Simon Willnauer
              mikemccand Michael McCandless
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 40m
                  40m