Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-38314

IndexBuilder::_build should not be interruptible while reacquiring database locks

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor - P4 Minor - P4
    • 4.1.6
    • 4.0.4, 4.1.5
    • Storage
    • None
    • Fully Compatible
    • ALL
    • Storage NYC 2018-12-17
    • 63

    Description

      For IndexBuilder::_build to clean up failed background index builds, the database has to be locked in specific modes. If the index build was interrupted (for example due to a killOp), the calls to DBLock::relockWithMode(mode) calls will not succeed, leading to an invariant in the MultiIndexBlockImpl destructor.

      This issue can be addressed by wrapping DBLock:relockWithMode() calls with an UninterruptibleLockGuard.

      Attachments

        Activity

          People

            benety.goh@mongodb.com Benety Goh
            benety.goh@mongodb.com Benety Goh
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: