-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Fully Compatible
-
ALL
-
Repl 2018-08-27, Repl 2018-09-10
-
11
When OperationContextSession is destroyed, it destroys the operationSessionDecoration on the OperationContext under the Client lock. Destroying the operationContextDecoration (which is a ScopedCheckedOutSession) takes the SessionCatalog mutex. Other code takes the SessionCatalog mutex and then the Client lock (implicitly in waitForConditionOrInterruptUntil) so this causes deadlocks.
Instead we should take the Client lock, move the ScopedCheckedOutSession from the operationSessionDecoration to a local variable, then release the Client lock and destroy the ScopedCheckedOutSession without the lock.
- is related to
-
SERVER-36007 Attempting to check out an already checked out session leads to self-deadlock
- Closed