[SERVER-66993] TransactionParticipants can be refreshed incorrectly after failover/restart Created: 03/Jun/22 Updated: 29/Oct/23 Resolved: 07/Jun/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 6.0.0-rc9, 6.1.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Cheahuychou Mao | Assignee: | Jack Mulrow |
| 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: |
v6.0
|
||||
| Sprint: | Sharding NYC 2022-06-13 | ||||
| Participants: | |||||
| Description |
|
To reduce the number of the matching session ids in the covered query read on the "parentLsid" during a TransactionParticipant refresh(see the comment below for details on how TransactionParticipant refreshes work), we look up the highest txnNumber known in memory and use it in find filter. This txnNumber is currently computed as the max of the lsid.txnNumber for the sessions that have been checked out from the SessionCatalog. Here is how this optimization can cause TransactionParticipants to get refreshed incorrectly after failover or restart.
So the issue here is that it is incorrect to to infer the active txnNumber from the session ids. |
| Comments |
| Comment by Githook User [ 07/Jun/22 ] |
|
Author: {'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}Message: (cherry picked from commit f0a44617983763b0fdc1f37bdc35e391184ea63d) |
| Comment by Githook User [ 07/Jun/22 ] |
|
Author: {'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}Message: |