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

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

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor - P4
    • Resolution: Fixed
    • Affects Version/s: 4.0.4, 4.1.5
    • Fix Version/s: 4.1.6
    • Component/s: Storage
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Sprint:
      Storage NYC 2018-12-17
    • Linked BF Score:
      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

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

              Dates

              Created:
              Updated:
              Resolved: