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

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

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major - P3
    • Resolution: Gone away
    • None
    • None
    • Replication
    • None

    Description

      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().

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: