[SERVER-35387] Ensure retried commitTransaction command waits for writeConcern Created: 04/Jun/18 Updated: 29/Oct/23 Resolved: 05/Jun/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 4.0.0-rc3, 4.1.1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Spencer Brody (Inactive) | Assignee: | Judah Schvimer |
| 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 | ||||||||||||
| Sprint: | Repl 2018-06-18 | ||||||||||||
| Participants: | |||||||||||||
| Description |
|
If a commitTransaction command is successful but times out waiting for replication, or the response to the driver is lost, the driver may retry the commitTransaction command. In that case, the retried commitTransaction command will not do any writes, thus it will not advance the lastOpTime on the Client, nor will it take the Global lock at all to trigger the GlobalLockAcquisitionTracker. On commitTransaction retries we should call ReplClientInfo::setLastOpToSystemLastOpTime, to ensure that we wait for write concern appropriately. |
| Comments |
| Comment by Githook User [ 05/Jun/18 ] |
|
Author: {'username': 'judahschvimer', 'name': 'Judah Schvimer', 'email': 'judah@mongodb.com'}Message: (cherry picked from commit f757bc52b926943bc748f0dc33173ab16e980f61) |
| Comment by Githook User [ 05/Jun/18 ] |
|
Author: {'username': 'judahschvimer', 'name': 'Judah Schvimer', 'email': 'judah@mongodb.com'}Message: |
| Comment by Spencer Brody (Inactive) [ 04/Jun/18 ] |
|
This is basically the same problem as |