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

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

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 7.1.0-rc0
    • None
    • None
    • None
    • Serverless
    • Fully Compatible
    • ALL
    • Server Serverless 2023-06-26
    • 13

    Description

      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).

      Attachments

        Activity

          People

            suganthi.mani@mongodb.com Suganthi Mani
            suganthi.mani@mongodb.com Suganthi Mani
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: