[SERVER-64059] Tenant migration recipient can miss updating the config.transactions table for those donor transactions that are committed at a timestamp <= startApplyingDonorOpTime. Created: 28/Feb/22 Updated: 29/Oct/23 Resolved: 22/Mar/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 5.3.2, 6.0.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Suganthi Mani | Assignee: | Christopher Caplinger |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||
| Operating System: | ALL | ||||||||
| Backport Requested: |
v5.3
|
||||||||
| Sprint: | Server Serverless 2022-03-07, Server Serverless 2022-03-21, Server Serverless 2022-04-04 | ||||||||
| Participants: | |||||||||
| Linked BF Score: | 35 | ||||||||
| Description |
|
Tenant oplog applier takes care of updating the session entry in the config.transactions table for those donor transactions that are committed after startApplyingDonorOpTime and this pre-oplog catchup step takes care of updating the session entry in the config.transactions table for those donor transactions that are committed before startFetchingDonorOpTime. But, misses updating the config.transactions table for those donor transactions that are committed in this range [startFetchingDonorOpTime, startApplyingDonorOpTime] where startFetchingDonorOpTime <= startApplyingDonorOpTime. This can lead to duplicate transaction commits. |
| Comments |
| Comment by Githook User [ 08/Apr/22 ] |
|
Author: {'name': 'Christopher Caplinger', 'email': 'christopher.caplinger@mongodb.com', 'username': 'UnicodeSnowman'}Message: (cherry picked from commit 3c6cae457889f39aee38555022ad62db76d0dd34) |
| Comment by Githook User [ 21/Mar/22 ] |
|
Author: {'name': 'Christopher Caplinger', 'email': 'christopher.caplinger@mongodb.com', 'username': 'UnicodeSnowman'}Message: |
| Comment by Suganthi Mani [ 01/Mar/22 ] |
|
Proposed solution is makeĀ _fetchCommittedTransactionsBeforeStartOpTime() to fetch all the committed txn entries from config.transactions table with lastWriteOpTime.ts < = startApplyingDonorOpTime |