-
Type: Task
-
Resolution: Gone away
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Replication
-
None
The comments mentioned here in "transitionToSteadyStateOperations" state is no longer valid with the tiebreaker model. To be noted, we can transition to "kSteadyStateOps" only from "kSyncSourceOpsDuringRollback". When the RollbackTest was having arbiter (SERVER-33587), the network topology for state "kSyncSourceOpsDuringRollback" was like
A / \ P1 - S A- Arbiter, P1 - curPrimary, S- curSecondary which is expected to rollback.
As a result, the comment mentioned here is valid as node S can get vote from arbiter and become primary.
But, with the tiebreaker setup, the network topology for state "kSyncSourceOpsDuringRollback" is like
T / P1 - S T- Tiebreaker, P1 - curPrimary, S- curSecondary which is expected to rollback.
Over in this model, there is noway, node S can escape from rollback because we make sure in "kSyncSourceOpsBeforeRollback" state that node S & P1's oplog entries are diverged. And, the node P1 writes an oplog entry in the higher term than node S. So, no way node S can get "yes" vote from node P1 for replSetRequestVote cmd unless the node S has rolled back.
Also, to be noted, when we are executing this RollbackTest transition step, we don't expect any kind of random restarts by fuzzer as random restarts happens only during workload execution phase and not during state transition phase (as mentioned in SERVER-42602). So, there is a guarantee that, at end of kSyncSourceOpsBeforeRollback node S branch of history is not same as node P1.
This ticket should remove this stale comment and the if-else check. Also, update the RollbackTest such that the rollbackId check is executed for all cases in transitionToSteadyStateOperations().
- depends on
-
SERVER-42602 Guarantee that unconditional step down will not happen due to slow node restarts in rollback_fuzzer_[un]clean_shutdowns suites.
- Closed
-
SERVER-45178 Rollback via refetch can cause rollback to happen successfully w/o updating the rollback id.
- Closed
- is related to
-
SERVER-44679 Rollback fuzzer must account for transactions that may not have been rolled back.
- Closed
- related to
-
SERVER-37390 RollbackTestFixture doesn't need to wait for a new primary if it didn't shut down the current primary
- Closed