description: Set version rolls back after new primary with higher election Id
uri: mongodb://a/?replicaSet=rs
phases:
  - responses:
      - - a:27017
        - ok: 1
          helloOk: true
          isWritablePrimary: true
          hosts:
            - a:27017
            - b:27017
          setName: rs
          setVersion: 2
          electionId:
            $oid: '000000000000000000000001'
          minWireVersion: 0
          maxWireVersion: 17
    outcome:
      servers:
        a:27017:
          type: RSPrimary
          setName: rs
          setVersion: 2
          electionId:
            $oid: '000000000000000000000001'
        b:27017:
          type: Unknown
          setName: null
          electionId: null
      topologyType: ReplicaSetWithPrimary
      logicalSessionTimeoutMinutes: null
      setName: rs
      maxSetVersion: 2
      maxElectionId:
        $oid: '000000000000000000000001'
  - # Response from new primary with newer election Id
    responses:
      - - b:27017
        - ok: 1
          helloOk: true
          isWritablePrimary: true
          hosts:
            - a:27017
            - b:27017
          setName: rs
          setVersion: 1
          electionId:
            $oid: '000000000000000000000002'
          minWireVersion: 0
          maxWireVersion: 17
    outcome:
      servers:
        a:27017:
          type: Unknown
          setName: null
          electionId: null
        b:27017:
          type: RSPrimary
          setName: rs
          setVersion: 1
          electionId:
            $oid: '000000000000000000000002'
      topologyType: ReplicaSetWithPrimary
      logicalSessionTimeoutMinutes: null
      setName: rs
      maxSetVersion: 1
      maxElectionId:
        $oid: '000000000000000000000002'
  - # Response from stale primary
    responses:
      - - a:27017
        - ok: 1
          helloOk: true
          isWritablePrimary: true
          hosts:
            - a:27017
            - b:27017
          setName: rs
          setVersion: 2
          electionId:
            $oid: '000000000000000000000001'
          minWireVersion: 0
          maxWireVersion: 17
    outcome:
      servers:
        a:27017:
          type: Unknown
          setName: null
          electionId: null
        b:27017:
          type: RSPrimary
          setName: rs
          setVersion: 1
          electionId:
            $oid: '000000000000000000000002'
      topologyType: ReplicaSetWithPrimary
      logicalSessionTimeoutMinutes: null
      setName: rs
      maxSetVersion: 1
      maxElectionId:
        $oid: '000000000000000000000002'
