[SERVER-41037] Stepup should kill all user operations(that encounters prepare conflict) before taking RSTL lock in X. Created: 07/May/19 Updated: 29/Oct/23 Resolved: 23/May/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 4.1.12 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Suganthi Mani | Assignee: | Pavithra Vetriselvan |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||
| Sprint: | Repl 2019-05-20, Repl 2019-06-03 | ||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||
| Description |
|
Currently, there is a 3 way deadlock. Assume that we are transitioning from secondary to primary(signalDrainComplete).
EDIT: Blocked due to conflicting mongoDB locks is not possible as secondary prepared txn yield mongoDB locks. |
| Comments |
| Comment by Githook User [ 23/May/19 ] |
|
Author: {'email': 'pvselvan@umich.edu', 'name': 'Pavi Vetriselvan', 'username': 'pvselvan'}Message: |
| Comment by Judah Schvimer [ 17/May/19 ] |
|
This should use the error code InterruptedDueToStepDown which |
| Comment by Suganthi Mani [ 12/May/19 ] |
|
Quick note on the implementation, _killUserOperationsOnStepDown should be called in a loop until RSTL lock is acquired in X mode by step up (like step down). Else, we might miss marking the operation killed that might end up in prepare conflict. |
| Comment by Judah Schvimer [ 08/May/19 ] |
|
Making it depends on makes sense! |
| Comment by Suganthi Mani [ 07/May/19 ] |
|
judah.schvimer, yes, similar to This means we can mark this ticket as depended on P.S: Rollback( |
| Comment by Judah Schvimer [ 07/May/19 ] |
|
suganthi.mani, can you please clarify, is this only killing user operations that actually get a prepare conflict? Similar to |