Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-42650

Remove stale comments mentioned in the RollbackTest for "transitionToSteadyStateOperations" state.

    • Type: Icon: Task Task
    • Resolution: Gone away
    • Priority: Icon: Major - P3 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().

            Assignee:
            judah.schvimer@mongodb.com Judah Schvimer
            Reporter:
            suganthi.mani@mongodb.com Suganthi Mani
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: