Details
-
Bug
-
Resolution: Done
-
Major - P3
-
None
-
2.1.1
-
None
-
None
-
ALL
Description
ClientCursor::staticYeild locks the LockMongoFiles lock, then releases the database lock. When it goes to re-acquire the database lock, since it already holds the LockMongoFiles lock, it has reversed the lock acquisition order. This means it can deadlock with other callers of staticYield.
The canonical order is to acquire the LockMongoFiles lock after the database locks.