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

We should never open an IndexInput when an IndexOutput is still open

    Details

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

      Description

      I modified MockDirWrapper to assert this (except for
      segments_N/segments.gen, where it's expected), and, it uncovered a
      couple of places involving NRT readers where we open a shared doc
      store file that's still open for writing.

      First, if you install a merged segment warmer, we were failing to
      force the merge of the doc stores in this case, thus potentially
      opening the same doc stores that are also still open for writing.

      Second, if you're actively adding docs in other threads when you call
      IW.getReader(), the other threads could sneak in and flush new
      segments sharing the doc stores. The returned reader then opens the
      doc store files that are still open for writing.

        Attachments

        1. LUCENE-2759.patch
          23 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: