[SERVER-55214] Resharding txn cloner can miss config.transactions entry when fetching Created: 15/Mar/21 Updated: 29/Oct/23 Resolved: 09/Apr/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | 5.0.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Randolph Tan | Assignee: | Randolph Tan |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | PM-234-M2.5, PM-234-T-config-txn-clone | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||||||||||||||||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||||||||||||||||||
| Sprint: | Sharding 2021-03-22, Sharding 2021-04-05, Sharding 2021-04-19 | ||||||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||||||
| Linked BF Score: | 42 | ||||||||||||||||||||||||||||||||||||
| Story Points: | 2 | ||||||||||||||||||||||||||||||||||||
| Description |
|
This is because we use readConcern snapshot + atClusterTime and readPref nearest. The issue is that, in secondaries, we squash multiple updates to config.transactions into one and use the newest timestamp when calling setTimestamp. So if we have 3 writes from retryable that corresponds to ts1, ts2 & ts3, the secondary will only have ts3 set properly and you will not be able to see the config.transactions document when reading with atClusterTime ts1 or ts2. |
| Comments |
| Comment by Githook User [ 08/Apr/21 ] |
|
Author: {'name': 'Randolph Tan', 'email': 'randolph@10gen.com', 'username': 'renctan'}Message: Also force the no-op oplog write that is being used as the minFetchTimestamp marker for resharding into its own batch when replicating. |
| Comment by Max Hirschhorn [ 26/Mar/21 ] |
|
The work plan for this ticket is do the following:
|
| Comment by Randolph Tan [ 15/Mar/21 ] |
|
Attaching js test that demonstrates the secondary read behavior for config.transactions |