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

replSetStepDown without force argument will fail if secondaries are behind and there is any write load

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.8.0-rc1
    • Component/s: Concurrency, Replication
    • Labels:
      None
    • Operating System:
      ALL

      Description

      Because the lock manager assigns locks to operations in FIFO order, if a write comes in after replSetStepDown acquires the global lock in MODE_S, but before any secondary has caught up to the head of the oplog, secondaries' attempts to read the oplog will block behind the write's attempt to get the global lock in MODE_IX. Since replSetStepDown took the global lock in MODE_S exactly to block writes, we need some way to indicate to the lock manager that it should continue to grant compatible lock requests, effectively letting reads cut ahead of the blocked writes.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              matt.dannenberg Matt Dannenberg
              Reporter:
              schwerin Andy Schwerin
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: