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

Deadlock involving the mutexes of oplog fetcher and replication coordinator

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major - P3 Major - P3
    • 3.4.4, 3.5.5
    • None
    • Replication
    • Fully Compatible
    • ALL
    • v3.4
    • Repl 2017-03-27
    • 0

    Description

      Replication coordinator stops the bgsync, which stops the running oplog fetcher, if there's a running oplog fetcher. Oplog fetcher needs the current term and the last committed optime to make new requests. As a result, they create an deadlock.

      • Replication coordinator, while holding replCoord's mutex, waits on oplog fetcher's mutex to stop it.
      • Oplog fetcher, while holding its mutex, waits on replCoord's mutex to get the current term and the last committed optime.

      To fix this, we need move the current term and last committed optime out of oplog fetcher's mutex.

      Attachments

        Activity

          People

            siyuan.zhou@mongodb.com Siyuan Zhou
            siyuan.zhou@mongodb.com Siyuan Zhou
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: