-
Type: Task
-
Resolution: Gone away
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Sharding
-
39
Issue:
Since SERVER-52564, session checkout throws InterruptedDueToReplStateChange when a stepdown is in progress. Throwing a retryable error before stepdown is complete means retries may be exhausted (running against the node stepping down) before the new primary steps up and the command can be retargeted.
Ideally, the command would be retargeted upon retry.
Proposal: Instead of bubbling the exception immediately back to the caller, wait for the stepdown to complete before throwing to the top layer.
This could be done by catching the initial InterruptedDueToReplStateChange exception thrown, blocking until the RSTL is released in the catch block, then calling checkForInterrupt() and throwing. Thus, by the time the session checkout throws, the stepdown has had time to complete.
- is related to
-
SERVER-34608 Drivers may still see ismaster=true from primary in midst of stepping down immediately after operations are killed with InterruptedDueToReplStateChange
- Closed
-
SERVER-38456 killSessionsLocalKillTransactions must filter for sessions with running transactions
- Closed
-
SERVER-52564 Deadlock between step down and MongoDOperationContextSession
- Closed