-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Fully Compatible
-
v4.4
-
Repl 2020-03-09, Repl 2020-03-23
-
23
In principle we should only need the Global IS/IX lock to read/write the oplog. However, see SERVER-44906, we're inconsistent. Furthermore, there are cases our code requires a DB and Collection lock in order to get a Collection pointer to the oplog, although this is not fundamentally necessary.
Inconsistent locking invites mistakes: deadlocks, race conditions, and unnecessary waiting.
- causes
-
SERVER-47959 Retry JournalFlusher oplog reads on WriteConflictExceptions caused by concurrent {full:true} validate command on the oplog collection
- Closed
- depends on
-
SERVER-44906 Rollback should take global write lock while truncating oplog
- Backlog
- is related to
-
SERVER-46930 AutoGetOplog doesn't acquire collection IX lock correctly for non-document-locking engines
- Closed
- links to