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

Yield locks on secondaries while waiting for two-phase index builds to commit or abort

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.3.1
    • Affects Version/s: None
    • Component/s: Storage
    • Labels:
      None
    • Fully Compatible
    • ALL
    • Execution Team 2019-10-07
    • 17

      Because we upgrade all IX locks to X locks on the "admin" database, two-phase index builds on secondaries that are waiting to commit or abort, will deadlock waiting for a replicated "commitIndexBuild" or "abortIndexBuild" oplog entry. These replicated commands take a database IS lock before they are applied, and will be unable to complete, preventing the index build from completing, but also stalling replication.

      The simplest solution should be to yield locks before calling "waitForConditionOrInterrupt".

            Assignee:
            louis.williams@mongodb.com Louis Williams
            Reporter:
            louis.williams@mongodb.com Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: