-
Type: Bug
-
Resolution: Gone away
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Storage
-
None
-
ALL
-
Storage NYC 2018-05-21
PeriodicRunnerASIO runs jobs serially and there are already jobs on it that take locks. Thus inactive transactions can block such PeriodicRunnerASIO jobs, and then the expired transaction aborter thread will never run to clear an expired transaction's lock resources, to unblock the PeriodicRunnerASIO jobs.
While v4.0 transaction operations take only intent locks, a concurrent non-transaction operation like dropCollection that requires an exclusive X lock can block behind a transaction, and then the lock fairness policy will cause IS and IX lock requests to queue up behind the X lock request.
So the following deadlock can occur in v4.0:
expired transaction aborter wait on -> PeriodicRunnerASIO job waits on -> drop cmd waits on -> inactive transaction locks
- is depended on by
-
SERVER-34732 collection drop hangs in test of transactions
- Closed
- related to
-
SERVER-34923 Replace PeriodicRunnerASIO
- Closed