[SERVER-78176] Tenant oplog applier should handle back-to-back migration involving no-op session writes. Created: 16/Jun/23  Updated: 29/Oct/23  Resolved: 23/Jun/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 7.1.0-rc0

Type: Bug Priority: Major - P3
Reporter: Suganthi Mani Assignee: Suganthi Mani
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Assigned Teams:
Serverless
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Server Serverless 2023-06-26
Participants:
Linked BF Score: 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).



 Comments   
Comment by Githook User [ 23/Jun/23 ]

Author:

{'name': 'Suganthi Mani', 'email': 'suganthi.mani@mongodb.com', 'username': 'smani87'}

Message: SERVER-78176 Tenant oplog applier handles back-to-back migration involving no-op session writes.
Branch: master
https://github.com/mongodb/mongo/commit/4d4ef75454720d80b9afe43b453b613baf9d6a03

Generated at Thu Feb 08 06:37:39 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.