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

XMLWordPrintableJSON

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

      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
            Reporter:
            Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: