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

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

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.3.1, 4.2.3
    • Affects Version/s: 4.2.0
    • Component/s: Replication
    • Labels:
    • Fully Compatible
    • ALL
    • v4.2
    • Repl 2019-11-04, Repl 2019-11-18
    • 9

      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.

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