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

Deadlock between signalDrainComplete and operations acquiring the FCV lock

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v5.0
    • Sprint:
      Repl 2021-06-28
    • Linked BF Score:
      144

      Description

      ReplicationCoordinatorImpl::signalDrainComplete takes the RSTL lock in X mode first before acquiring the FCV lock for reconfig. Based on SERVER-33043, the FCV lock should be acquired before the global lock. I think this implies that the FCV lock should also be acquired before the RSTL lock. Because operation like this would take the FCV lock first before getting the global / RSTL locks. FixedFCVRegion has an invariant to check for that the global lock is not being held first. I think we should extend the invariant to check for RSTL lock as well.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              jason.chan Jason Chan
              Reporter:
              lingzhi.deng Lingzhi Deng
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: