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

Uninterruptible lock guard in election causes FCBIS to hang

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.0.3, 6.2.0-rc0
    • Affects Version/s: None
    • Component/s: Replication
    • None
    • Fully Compatible
    • ALL
    • v6.1, v6.0
    • Repl 2022-10-03, Repl 2022-10-17

      In order to avoid interrupting ourselves due to our own stepdown, we use uninterruptible locks when writing lastVote in an election. Unfortunately if we've taken the global lock in X mode for FCBIS storage change, this leads to a deadlock – we're trying to acquire a write lock on an uninterruptible opCtx while also attempting to kill the opCtx so we can change storage and release the lock.

      The quick fix might be to not acquire the uninterruptible lock guard during STARTUP2, but we should definitely add a test for this; since initial sync nodes are usually non-voting we don't have coverage for an election during it.

            matthew.russotto@mongodb.com Matthew Russotto
            matthew.russotto@mongodb.com Matthew Russotto
            0 Vote for this issue
            11 Start watching this issue