description: "Record max setVersion, even from primary without electionId" uri: "mongodb://a/?replicaSet=rs" phases: [ # Primary A has electionId and setVersion, 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: 17 }] ], 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, B reports as primary, B is missing the electionId but reports setVersion { responses: [ ["b:27017", { ok: 1, helloOk: true, isWritablePrimary: true, hosts: ["a:27017", "b:27017"], setName: "rs", setVersion: 2, minWireVersion: 0, maxWireVersion: 17 }] ], 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"}, } }, # A reports as primary, A has been reelection (electionId greater than our recorded maxElectionId). # A's setVersion is less than our maxSetVersion, but electionId takes precedence so B's primary claim is ignored { responses: [ ["a: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: "RSPrimary", setName: "rs", setVersion: 1, electionId: {"$oid": "000000000000000000000002"} }, "b:27017":{ type: "Unknown", setName: , electionId: } }, topologyType: "ReplicaSetWithPrimary", logicalSessionTimeoutMinutes: null, setName: "rs", maxSetVersion: 1, maxElectionId: {"$oid": "000000000000000000000002"}, } } ]