description: "Pre 6.0 Record max setVersion, even from primary without electionId" uri: "mongodb://a/?replicaSet=rs" phases: [ # Primary A has setVersion and electionId, tells us about B. { responses: [ ["a:27017", { ok: 1, helloOk: true, isWritablePrimary: true, hosts: ["a:27017", "b:27017"], setName: "rs", setVersion: 1, electionId: {"$oid": "000000000000000000000001"}, minWireVersion: 0, maxWireVersion: 6 }] ], outcome: { servers: { "a:27017": { type: "RSPrimary", setName: "rs", setVersion: 1, electionId: {"$oid": "000000000000000000000001"} }, "b:27017": { type: "Unknown", setName: , electionId: } }, topologyType: "ReplicaSetWithPrimary", logicalSessionTimeoutMinutes: null, setName: "rs", maxSetVersion: 1, maxElectionId: {"$oid": "000000000000000000000001"}, } }, # Reconfig the set and elect B, it has a new setVersion but no electionId. { responses: [ ["b:27017", { ok: 1, helloOk: true, isWritablePrimary: true, hosts: ["a:27017", "b:27017"], setName: "rs", setVersion: 2, minWireVersion: 0, maxWireVersion: 6 }] ], outcome: { servers: { "a:27017": { type: "Unknown", setName: , electionId: }, "b:27017": { type: "RSPrimary", setName: "rs", setVersion: 2 } }, topologyType: "ReplicaSetWithPrimary", logicalSessionTimeoutMinutes: null, setName: "rs", maxSetVersion: 2, maxElectionId: {"$oid": "000000000000000000000001"}, } }, # Delayed response from A, reporting its reelection. Its setVersion shows # the election preceded B's so we ignore it. { responses: [ ["a:27017", { ok: 1, helloOk: true, isWritablePrimary: true, hosts: ["a:27017", "b:27017"], setName: "rs", setVersion: 1, electionId: {"$oid": "000000000000000000000002"}, minWireVersion: 0, maxWireVersion: 6 }] ], outcome: { servers: { "a:27017": { type: "Unknown", setName: , electionId: }, "b:27017": { type: "RSPrimary", setName: "rs", setVersion: 2 } }, topologyType: "ReplicaSetWithPrimary", logicalSessionTimeoutMinutes: null, setName: "rs", maxSetVersion: 2, maxElectionId: {"$oid": "000000000000000000000001"}, } } ]