-
Type:
Task
-
Status: Closed
-
Priority:
Major - P3
-
Resolution: Fixed
-
Affects Version/s: None
-
Component/s: None
-
Labels:
-
Backwards Compatibility:Fully Compatible
-
Backport Requested:v4.4
-
Epic Link:
-
Sprint:Repl 2020-03-09, Repl 2020-03-23
-
Linked BF Score: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
-
- Open
-
- is related to
-
SERVER-46930 AutoGetOplog doesn't acquire collection IX lock correctly for non-document-locking engines
-
- Closed
-
- links to