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

After IW.addIndexesNoOptimize, IW.close may hang

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 2.3, 2.3.1
    • 2.3.2, 2.4
    • core/index
    • None
    • New

    Description

      Spinoff from here:

      http://mail-archives.apache.org/mod_mbox/lucene-java-user/200804.mbox/%3c43128.192.168.1.71.1208561409.webmail@192.168.1.71%3e

      The addIndexesNoOptimize method first merges eligible segments
      according to the MergePolicy, and then copies over one by one any
      remaining "external" segments.

      That copy can possibly (rather rarely) result in new merges becoming
      eligible because its size can change if the index being added was
      created with autoCommit=false.

      However, we fail to then invoke the MergeScheduler to run these
      merges. As a result, in close, where we wait until all running and
      pending merges complete, we will never return.

      The fix is simple: invoke the merge scheduler inside
      copyExternalSegments() if any segments were copied. I also added
      defensive invocation of the merge scheduler during close, just in case
      other code paths could allow for a merge to be added to the pending
      queue but not scheduled.

      Attachments

        1. LUCENE-1270.patch
          5 kB
          Michael McCandless

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment