Retry the restore term-finalize AppendLog with a fresh LSN instead of fasserting on first rejection

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 9.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Optimization
    • Fully Compatible
    • ALL
    • 200
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      magic_restore_higher_term.js intermittently fails with the magic-restore mongod aborting via fassert(12595915) in ReplicationCoordinatorDisaggregatedStorage::_kickOffMagicRestore(). At the JS level this surfaces as assert.soon failed: "Expected magic restore to exit mongod cleanly" followed by the hang analyzer, because the test polls for a clean exit that never comes after the abort.

      Root cause. At the end of a disagg point-in-time restore, we reconcile the log server's term by appending a final no-op "new primary" oplog entry (LogServerManager::magicRestoreFinalizeTermAppendLog). Before this append, the caller drains the oplog provider and stops the state machine, which cancels the primary
      loop's AppendLog stream. Scenario B (checkpoint-only) is most exposed because it applies no oplog entries, so the finalize runs immediately after step-up, exactly when the step-up phylog entry is still in flight.

            Assignee:
            Matt Olma
            Reporter:
            Matt Olma
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: