-
Type: Bug
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Replication
-
ALL
-
25
As part of storing the lastVote document, we will wait for it to be durable, and we will eventually call into refreshOplogTruncateAfterPointIfPrimary. This needs to acquire a global IX lock as part of an AutoGetCollection. This can deadlock with stepdown, as it tries to clear the oplog truncate after point, which in turn waits on a journal flush. The journal flusher needs to be able to run wait for durability too, but it cannot get to the critical section as that is protected by a mutex which is already held by the lastVote thread.
We recently made storing the lastVote document fully uninterruptible in SERVER-47612.
- duplicates
-
SERVER-48144 waitUntilDurable should not take a mutex before taking locks
- Closed
- is caused by
-
SERVER-47612 Elections not robust in remove_newly_added_field_after_finishing_initial_sync.js
- Closed