Tenant oplog applier should handle back-to-back migration involving no-op session writes.

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 7.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Serverless
    • Fully Compatible
    • ALL
    • Server Serverless 2023-06-26
    • 13
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      Tenant oplog applier fails to handle below edge case involving back-to-back tenant migration (rs0 -> rs1 -> rs0).

       1) rs0: Retryable insert at txnNum: 55 succeeds.
       2) rs0: No-op session write (E.g. no-op retryable update) at txnNum: 56 succeeds, causing no  writes to 'config.transactions' table but updates in-memory transaction participant.
       3) Start migration from rs0 -> rs1, copying the oplog chain for txnNum:55 from rs0 to rs1.
       4) rs0 -> rs1 migration succeeds.
       5) Starting a migration again from rs1 -> rs0  should succeed. But, currently it fails with ErrorCodes.TransactionTooOld because tenant oplog applier doesn't consider no-op session writes (E.g, no-op retryable update, read transactions or abort replica set transactions).

            Assignee:
            Suganthi Mani
            Reporter:
            Suganthi Mani
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: