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

Deadlock involving the mutexes of oplog fetcher and replication coordinator

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.4.4, 3.5.5
    • Affects Version/s: None
    • Component/s: Replication
    • Fully Compatible
    • ALL
    • v3.4
    • Repl 2017-03-27
    • 0

      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.

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

              Created:
              Updated:
              Resolved: