[SERVER-35809] Never implicitly abort prepared transactions Created: 26/Jun/18 Updated: 29/Oct/23 Resolved: 10/Aug/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 4.1.2 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Gregory McKeon (Inactive) | Assignee: | Siyuan Zhou |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | prepare_errors | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||
| Sprint: | Repl 2018-07-30, Repl 2018-08-13 | ||||||||
| Participants: | |||||||||
| Linked BF Score: | 59 | ||||||||
| Description |
|
| Comments |
| Comment by Githook User [ 10/Aug/18 ] |
|
Author: {'name': 'Siyuan Zhou', 'email': 'siyuan.zhou@mongodb.com', 'username': 'visualzhou'}Message: |
| Comment by Githook User [ 30/Jul/18 ] |
|
Author: {'username': 'visualzhou', 'name': 'Siyuan Zhou', 'email': 'siyuan.zhou@mongodb.com'}Message: |
| Comment by Githook User [ 30/Jul/18 ] |
|
Author: {'username': 'visualzhou', 'name': 'Siyuan Zhou', 'email': 'siyuan.zhou@mongodb.com'}Message: |
| Comment by Githook User [ 23/Jul/18 ] |
|
Author: {'username': 'visualzhou', 'name': 'Siyuan Zhou', 'email': 'siyuan.zhou@mongodb.com'}Message: |
| Comment by Judah Schvimer [ 03/Jul/18 ] |
|
As part of this ticket, please remove this unnecessary usage of the Client lock and clarify the locking rules for the Client lock. Per schwerin, the Client lock is needed for changes that are legal to observe from off-thread. Per tess.avitabile, we lock the Client when changing the Locker on the OperationContext, since it's accessed from serverStatus/currentOp. We do not need to lock the client to change the RecoveryUnit on the OperationContext. |
| Comment by Judah Schvimer [ 02/Jul/18 ] |
|
As part of this work, we should revisit this code and see if we can merge it in with existing code paths: https://github.com/mongodb/mongo/blob/08c906d4691f977c0a007780d9adc5128764eb35/src/mongo/db/session.cpp#L1028-L1052 |