[SERVER-66222] Retryable transactions should reject multi writes Created: 04/May/22 Updated: 29/Oct/23 Resolved: 05/May/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 6.0.0-rc5, 6.1.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Jack Mulrow | 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-05-16 | ||||||||||||
| Participants: | |||||||||||||
| Description |
|
Retryable transactions introduced by PM-2210 allow reconstructing transaction statement responses by tracking statement ids like for non-transaction retryable writes. Multi writes are not allowed for retryable writes and should be rejected within a retryable transaction if they are sent with an initialized statement id. The uninitialized statement id is used to opt out of history tracking in retryable transactions, so multi writes sent with it should not be rejected. Note that if a multi write in a retryable transaction actually updates multiple documents, it will currently fail this assertion. |
| Comments |
| Comment by Githook User [ 05/May/22 ] |
|
Author: {'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}Message: (cherry picked from commit 883238375b56d7a4a11f48583a5f79a5f7192d87) |
| Comment by Githook User [ 05/May/22 ] |
|
Author: {'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}Message: |