120 lines
3.6 KiB
YAML
120 lines
3.6 KiB
YAML
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"},
|
|
}
|
|
}
|
|
]
|