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

Initial sync may crash due to missing oplog entries of running transactions

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: 4.2.0
    • Fix Version/s: 4.3.1, 4.2.3
    • Component/s: Replication
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v4.2
    • Sprint:
      Repl 2019-11-04, Repl 2019-11-18
    • Linked BF Score:
      9

      Description

      Initial sync fetches the oldest active transaction timestamp before the top of oplog. In the following case, it would miss the necessary oplog entries needed by oplog application.

      1. Initial sync fetches the oldest active transaction timestamp, seeing no running transaction.
      2. A transaction starts and gets prepared, writing the prepare command [P] into the oplog.
      3. The transaction commits, writing the commit command [C] into the oplog.
      4. Initial sync fetches the top of oplog [C].
      5. Initial sync starts to apply operations from [C] since there was no running transaction and fails to applies it since the needed [P] is missing.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: