-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
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).