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

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

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Minor - P4 Minor - P4
    • 4.1.6
    • Affects Version/s: 4.0.4, 4.1.5
    • Component/s: Storage
    • None
    • Fully Compatible
    • ALL
    • Storage NYC 2018-12-17
    • 63

      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.

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

              Created:
              Updated:
              Resolved: