-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Replication
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Intuitively _replicationWaiterList is expected to be empty whenever we transition to secondary or when we transition to rollback.
This ticket is to add an explicit invariant around the _replicationWaiterList being empty on state transitions, if the expectation is supposed to be true (after we investigate), or alternatively spelling out in which cases the _replicationWaiterList is may have waiters.
On rollback in particular having a non-empty _replicationWaiterList seems dangerous: for example, if a waiter waiting on opTime with t:1 exists, and then if the node rolls back, and then reaches a diverging branch of history t:2, it definitely should not acknowledge the waiter.
If these aren't concerns, we can close this ticket out!