[SERVER-55883] Allow retrying commitTransaction across back-to-back migrations Created: 07/Apr/21  Updated: 29/Oct/23  Resolved: 19/May/21

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: 5.1 Required
Fix Version/s: 5.0.0-rc0, 5.1.0-rc0

Type: Bug Priority: Major - P3
Reporter: Xuerui Fa Assignee: Lingzhi Deng
Resolution: Fixed Votes: 0
Labels: pm-1791_non-cloud-blocking, pm-1791_other_required, post-rc0
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v5.0
Sprint: Repl 2021-05-17, Repl 2021-05-31
Participants:

 Description   

Currently, tenant migrations supports retrying commitTransaction across a single migration. With the current implementation, retrying commitTransaction may not work if back-to-back tenant migrations occur.

This is because when we create the transaction entry on the recipient of the first tenant migration, we set the lastWriteOpTime field to be an empty OpTime. In the aggregation pipeline for fetching these committed transactions, we use the lastWriteOpTime to find the corresponding oplog entry. Since lastWriteOpTime is empty, on the second tenant migration, the pipeline will not return the transaction entry. As a result, users will not be able to retry commitTransaction after the second tenant migration.

This is probably not a major issue, since retrying a commitTransaction after a back-to-back migration is a rare situation.



 Comments   
Comment by Vivian Ge (Inactive) [ 06/Oct/21 ]

Updating the fixversion since branching activities occurred yesterday. This ticket will be in rc0 when it’s been triggered. For more active release information, please keep an eye on #server-release. Thank you!

Comment by Githook User [ 19/May/21 ]

Author:

{'name': 'Lingzhi Deng', 'email': 'lingzhi.deng@mongodb.com', 'username': 'ldennis'}

Message: SERVER-55883: Allow retrying commitTransaction across back-to-back migrations

(cherry picked from commit 576e2a257cb27ca89c4466a9bdef92e2b2d05ded)
Branch: v5.0
https://github.com/mongodb/mongo/commit/47f09ef73c7f9782312a2e72a2d7b95879648d0f

Comment by Githook User [ 19/May/21 ]

Author:

{'name': 'Lingzhi Deng', 'email': 'lingzhi.deng@mongodb.com', 'username': 'ldennis'}

Message: SERVER-55883: Allow retrying commitTransaction across back-to-back migrations
Branch: master
https://github.com/mongodb/mongo/commit/576e2a257cb27ca89c4466a9bdef92e2b2d05ded

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