bson/testdata/server-discovery-and-monitoring/rs/primary_disconnect_electionid.yml
2025-03-17 20:58:26 +01:00

190 lines
5.4 KiB
YAML

description: "Disconnected from primary, reject primary with stale electionId"
uri: "mongodb://a/?replicaSet=rs"
phases: [
# A is elected, then 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
}],
["b: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: 1,
electionId: {"$oid": "000000000000000000000002"}
}
},
topologyType: "ReplicaSetWithPrimary",
logicalSessionTimeoutMinutes: null,
setName: "rs",
maxSetVersion: 1,
maxElectionId: {"$oid": "000000000000000000000002"},
}
},
# Disconnected from B.
{
responses: [
["b:27017", {}]
],
outcome: {
servers: {
"a:27017": {
type: "Unknown",
setName: ,
electionId:
},
"b:27017": {
type: "Unknown",
setName: ,
electionId:
}
},
topologyType: "ReplicaSetNoPrimary",
logicalSessionTimeoutMinutes: null,
setName: "rs",
maxSetVersion: 1,
maxElectionId: {"$oid": "000000000000000000000002"},
}
},
# A still claims to be primary but it's ignored.
{
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: "Unknown",
setName: ,
electionId:
},
"b:27017": {
type: "Unknown",
setName: ,
electionId:
}
},
topologyType: "ReplicaSetNoPrimary",
logicalSessionTimeoutMinutes: null,
setName: "rs",
maxSetVersion: 1,
maxElectionId: {"$oid": "000000000000000000000002"},
}
},
# Now A is re-elected.
{
responses: [
["a:27017", {
ok: 1,
helloOk: true,
isWritablePrimary: true,
hosts: ["a:27017", "b:27017"],
setName: "rs",
setVersion: 1,
electionId: {"$oid": "000000000000000000000003"},
minWireVersion: 0,
maxWireVersion: 6
}]
],
outcome: {
servers: {
"a:27017": {
type: "RSPrimary",
setName: "rs",
setVersion: 1,
electionId: {"$oid": "000000000000000000000003"}
},
"b:27017": {
type: "Unknown",
setName: ,
electionId:
}
},
topologyType: "ReplicaSetWithPrimary",
logicalSessionTimeoutMinutes: null,
setName: "rs",
maxSetVersion: 1,
maxElectionId: {"$oid": "000000000000000000000003"},
}
},
# B comes back as secondary.
{
responses: [
["b:27017", {
ok: 1,
helloOk: true,
isWritablePrimary: false,
secondary: true,
hosts: ["a:27017", "b:27017"],
setName: "rs",
minWireVersion: 0,
maxWireVersion: 6
}]
],
outcome: {
servers: {
"a:27017": {
type: "RSPrimary",
setName: "rs",
setVersion: 1,
electionId: {"$oid": "000000000000000000000003"}
},
"b:27017": {
type: "RSSecondary",
setName: "rs"
}
},
topologyType: "ReplicaSetWithPrimary",
logicalSessionTimeoutMinutes: null,
setName: "rs",
maxSetVersion: 1,
maxElectionId: {"$oid": "000000000000000000000003"},
}
}
]