- 
    Type:
Bug
 - 
    Resolution: Works as Designed
 - 
    Priority:
Critical - P2
 - 
    None
 - 
    Affects Version/s: 4.0.0-rc0
 - 
    Component/s: Concurrency, Querying
 - 
    None
 
- 
        Replication
 - 
        ALL
 - 
        
 - 
        None
 
- 
        None
 - 
        None
 - 
        None
 - 
        None
 - 
        None
 - 
        None
 
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
 
 -