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

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • 4.2.0
    • 4.3.1, 4.2.3
    • Replication
    • Fully Compatible
    • ALL
    • v4.2
    • Repl 2019-11-04, Repl 2019-11-18
    • 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

              samy.lanka@mongodb.com Samyukta Lanka
              siyuan.zhou@mongodb.com Siyuan Zhou
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: