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

Tenant donor shouldn't use donorAbortMigration cancellation token when writing commit decision

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 6.0.4, 6.1.0-rc0
    • None
    • Fully Compatible
    • ALL
    • v6.0
    • Server Serverless 2022-03-21, Server Serverless 2022-04-04, Server Serverless 2022-04-18, Server Serverless 2022-05-02, Server Serverless 2022-05-16, Server Serverless 2022-05-30, Server Serverless 2022-06-13
    • 175
    • 3

    Description

      The donorAbortMigration command works by cancelling a cancellation source that is checked via token in a tenant migration donor's run() future chain. The donor incorrectly uses a token derived from that source when performing its write to enter the committed state and when waiting for that write to majority commit, so a well timed donorAbortMigration can trigger an exception after the commit decision is locally written, leading the donor to write an abort decision, which triggers an invariant in the op observer that processes the abort write, because the commit decision cannot be made twice.

      Attachments

        Activity

          People

            hugh.tong@mongodb.com Hugh Tong
            jack.mulrow@mongodb.com Jack Mulrow
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: