[SERVER-63978] Killing a child session should prevent checking out its parent Created: 24/Feb/22  Updated: 29/Oct/23  Resolved: 25/Feb/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.0.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:
Depends
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Sharding 2022-03-07
Participants:
Linked BF Score: 135

 Description   

When a session is killed in the SessionCatalog, an internal counter is incremented to prevent the session from being checked out for a normal operation until the killer has checked it out. To check out a "child" session (a new concept introduced in PM-2210), the child's "parent" session must also be checked out, which is a separate session in the SessionCatalog. Killing the child only increments the child's counter, so nothing prevents the parent from getting checked out and blocking the killer from checking out the child, which can lead to a deadlock if the parent gets blocked like in the case of a replication state change, where all sessions are killed while the RSTL is held.

Instead, killing a child should also prevent its parent from getting checked out until the killer has checked out the child.



 Comments   
Comment by Githook User [ 25/Feb/22 ]

Author:

{'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}

Message: SERVER-63978 Killing a child session should prevent checking out its parent
Branch: master
https://github.com/mongodb/mongo/commit/2a08e923539db20d79af032a27344a5990cee4a4

Generated at Thu Feb 08 05:59:10 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.