-
Type: Bug
-
Resolution: Gone away
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Replication
-
ALL
-
65
3 way deadlock involving applyOps cmd, prepared transaction and oplog find command can occur on a primary.
1) applyOps cmd enqueues global lock in X mode and stuck behind prepared transaction due to global lock conflict.
2) Prepared transaction holding global lock in IX mode, waits for the prepareTransaction oplog entry to be majority replicated. But stuck behind the Secondaries oplog replication.
3) Secondary oplog fetcher initiated find cmd on oplog collection is waiting for global lock to acquire in IS mode but stuck behind the applyOps cmd due to enqueued global lock .
To be noted, 'applyOps' cmd by default runs in atomic mode. Atomic mode apply ops consisting of CRUD ops always take global lock in X mode.
- depends on
-
SERVER-33182 Remove atomic applyOps
- Closed
- is related to
-
SERVER-33326 Remove use of applyOps/doTxn from sharding chunk operations
- Closed
-
SERVER-36263 Bypassing operation validation in applyOps should require special privilege
- Closed