The server can be deadlocked in TransactionRouter running a command against itself without first yielding the session. This particular code path runs on a retried commit with a single write node target. This code usually runs in mongoS, where that command is never directed to itself, but to a shard. When it runs on an embedded router, or maybe even on a shard using the internal router capabilities, the target could be the same process, resulting in deadlock. The fix would be to yield the session before issuing the command.
- is depended on by
-
SERVER-88099 Add FSM test for $lookup against foreign sharded collections within transactions
- Closed
- related to
-
SERVER-84470 Allow $lookup to target an unsplittable collection on a primary shard within a multi-document transaction
- Closed