The MigrationDestinationManager waits for a thread to join here while holding a session checked out. This thread can do blocking work, such as checking out a different session. This can lead to a deadlock with a thread that is checking out all of the sessions for kill:
(1) MigrationDestinationManager checks out session A.
(2) Killing thread marks all sessions as killed.
(3) Killing thread waits to check out session A for kill.
(4) _thread waits to check out session B, but is blocked because session B is marked as killed.
(5) MigrationDestinationManager waits for _thread to join.
- is depended on by
SERVER-47645 Must invalidate all sessions on step down
- related to
SERVER-48641 Deadlock due to the MigrationDestinationManager waiting for write concern with the session checked-out
SERVER-73106 [v4.4] Chunk migration attempts to wait for replication with session checked out when getLastErrorDefaults are used in replica set config, leading to server crash