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

SegmentInfo should explicitly track whether that segment wrote term vectors

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.1, 4.0-ALPHA
    • Component/s: core/index
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      Today SegmentInfo doesn't know if it has vectors, which means its files() method must check if the files exist.

      This leads to subtle bugs, because Si.files() caches the files but then we fail to invalidate that later when the term vectors files are created.

      It also leads to sloppy code, eg TermVectorsReader "gracefully" handles being opened when the files do not exist. I don't like that; it should only be opened if they exist.

      This also fixes these intermittent failures we've been seeing:

      junit.framework.AssertionFailedError: IndexFileDeleter doesn't know about file _1e.tvx
             at org.apache.lucene.util.LuceneTestCase$LuceneTestCaseRunner.runChild(LuceneTestCase.java:979)
             at org.apache.lucene.util.LuceneTestCase$LuceneTestCaseRunner.runChild(LuceneTestCase.java:917)
             at org.apache.lucene.index.IndexWriter.filesExist(IndexWriter.java:3633)
             at org.apache.lucene.index.IndexWriter.startCommit(IndexWriter.java:3699)
             at org.apache.lucene.index.IndexWriter.prepareCommit(IndexWriter.java:2407)
             at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2478)
             at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2460)
             at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2444)
             at org.apache.lucene.index.TestIndexWriterExceptions.testRandomExceptionsThreads(TestIndexWriterExceptions.java:213)
      

        Attachments

        1. LUCENE-2811.patch
          30 kB
          Michael McCandless

          Activity

            People

            • Assignee:
              mikemccand Michael McCandless
              Reporter:
              mikemccand Michael McCandless
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: