-
Type: Bug
-
Resolution: Works as Designed
-
Priority: Critical - P2
-
None
-
Affects Version/s: 4.0.0-rc0
-
Component/s: Concurrency, Querying
-
None
-
Replication
-
ALL
-
Suppose a transaction opens a cursor, then abandons it. The locks for that cursor will be held in intent mode, even between batches.
Now suppose a drop for the database or collection comes in. That drop will "get in line" with a MODE_X lock. In order to be fair to such requests, that pending MODE_X acquisition will block all future intent acquisitions.
This will prevent a killCursors from killing the cursor, since it will need to take a collection lock. It looks like it will also prevent the background transaction timeout job from killing it.
- is related to
-
SERVER-34795 killSessions should kill transactions prior to killing cursors
- Closed
- related to
-
SERVER-35217 killSessions command attempts to kill a transaction while holding SessionCatalog::_mutex, which leads to deadlock
- Closed