-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Replication
-
Fully Compatible
-
ALL
-
Repl 2024-04-15
In signalDrainComplete(), we call onDrainComplete() to make the oplog buffer exit drain mode. But this is called before checking canCompleteTransitionToPrimary(). It's possible that this check fails (e.g. when calling signalDrainComplete() with a stale term), and in this case applier should later call signalDrainComplete() for retry.
Prior to this project this is fine because the batcher will be able to call setTermWhenExhausted for the next batch and then applier call signalDrainComplete() again. But with the changes in project, since the buffer may already exited drain mode, this check will prevent batcher to call setTermWhenExhausted and the node will not complete stepup.
- is depended on by
-
SERVER-85598 [Milestone] OplogWriter Checkpoint
- Closed