Skip to content

Commit 0024b5d

Browse files
authored
CDRIVER-3636 exclude PossiblePrimary from MSS check (#860)
Do not check PossiblePrimary servers in the maxWireVersion check for topology support of maxStalenessSeconds
1 parent 30e1368 commit 0024b5d

File tree

4 files changed

+86
-3
lines changed

4 files changed

+86
-3
lines changed

src/libmongoc/src/mongoc/mongoc-topology-description.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,9 @@ mongoc_topology_description_lowest_max_wire_version (
541541
for (i = 0; (size_t) i < td->servers->items_len; i++) {
542542
sd = (mongoc_server_description_t *) mongoc_set_get_item (td->servers, i);
543543

544-
if (sd->type != MONGOC_SERVER_UNKNOWN && sd->max_wire_version < ret) {
544+
if (sd->type != MONGOC_SERVER_UNKNOWN &&
545+
sd->type != MONGOC_SERVER_POSSIBLE_PRIMARY &&
546+
sd->max_wire_version < ret) {
545547
ret = sd->max_wire_version;
546548
}
547549
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"topology_description": {
3+
"type": "ReplicaSetNoPrimary",
4+
"servers": [
5+
{
6+
"address": "a:27017",
7+
"type": "Unknown"
8+
},
9+
{
10+
"address": "b:27017",
11+
"type": "Unknown"
12+
}
13+
]
14+
},
15+
"read_preference": {
16+
"mode": "Nearest",
17+
"maxStalenessSeconds": 1
18+
},
19+
"error": true
20+
}

src/libmongoc/tests/json/max_staleness/ReplicaSetNoPrimary/NoKnownServers.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
},
1515
"read_preference": {
1616
"mode": "Nearest",
17-
"maxStalenessSeconds": 1
17+
"maxStalenessSeconds": 90
1818
},
19-
"error": true
19+
"suitable_servers": [],
20+
"in_latency_window": []
2021
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"topology_description": {
3+
"type": "ReplicaSetNoPrimary",
4+
"servers": [
5+
{
6+
"address": "a:27017",
7+
"type": "PossiblePrimary",
8+
"avg_rtt_ms": 5,
9+
"maxWireVersion": 0
10+
},
11+
{
12+
"address": "b:27017",
13+
"type": "Unknown",
14+
"avg_rtt_ms": 5,
15+
"maxWireVersion": 0
16+
},
17+
{
18+
"address": "c:27017",
19+
"type": "RSSecondary",
20+
"maxWireVersion": 5,
21+
"avg_rtt_ms": 5,
22+
"lastWrite": {
23+
"lastWriteDate": {
24+
"$numberLong": "1"
25+
}
26+
}
27+
}
28+
]
29+
},
30+
"read_preference": {
31+
"mode": "Nearest",
32+
"maxStalenessSeconds": 120
33+
},
34+
"suitable_servers": [
35+
{
36+
"address": "c:27017",
37+
"type": "RSSecondary",
38+
"maxWireVersion": 5,
39+
"avg_rtt_ms": 5,
40+
"lastWrite": {
41+
"lastWriteDate": {
42+
"$numberLong": "1"
43+
}
44+
}
45+
}
46+
],
47+
"in_latency_window": [
48+
{
49+
"address": "c:27017",
50+
"type": "RSSecondary",
51+
"maxWireVersion": 5,
52+
"avg_rtt_ms": 5,
53+
"lastWrite": {
54+
"lastWriteDate": {
55+
"$numberLong": "1"
56+
}
57+
}
58+
}
59+
]
60+
}

0 commit comments

Comments
 (0)