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

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

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.0.4, 6.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • 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

      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.

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

              Created:
              Updated:
              Resolved: