From f100e083de725887f5bcb86ee066d55369965d00 Mon Sep 17 00:00:00 2001 From: Preston Vasquez Date: Mon, 26 Jan 2026 14:38:45 -0700 Subject: [PATCH] fix(serverselector): filter deprioritized candidates by address only --- .../read/DeprioritizedNearestStateChange.json | 78 +++++++++++++++++++ .../read/DeprioritizedNearestStateChange.yml | 41 ++++++++++ 2 files changed, 119 insertions(+) create mode 100644 source/server-selection/tests/server_selection/ReplicaSetWithPrimary/read/DeprioritizedNearestStateChange.json create mode 100644 source/server-selection/tests/server_selection/ReplicaSetWithPrimary/read/DeprioritizedNearestStateChange.yml diff --git a/source/server-selection/tests/server_selection/ReplicaSetWithPrimary/read/DeprioritizedNearestStateChange.json b/source/server-selection/tests/server_selection/ReplicaSetWithPrimary/read/DeprioritizedNearestStateChange.json new file mode 100644 index 0000000000..f1560bc117 --- /dev/null +++ b/source/server-selection/tests/server_selection/ReplicaSetWithPrimary/read/DeprioritizedNearestStateChange.json @@ -0,0 +1,78 @@ +{ + "topology_description": { + "type": "ReplicaSetWithPrimary", + "servers": [ + { + "address": "b:27017", + "avg_rtt_ms": 5, + "type": "RSSecondary", + "tags": { + "data_center": "nyc" + } + }, + { + "address": "c:27017", + "avg_rtt_ms": 100, + "type": "RSSecondary", + "tags": { + "data_center": "nyc" + } + }, + { + "address": "a:27017", + "avg_rtt_ms": 25, + "type": "RSPrimary", + "tags": { + "data_center": "nyc" + } + } + ] + }, + "operation": "read", + "read_preference": { + "mode": "Nearest", + "tag_sets": [ + { + "data_center": "nyc" + } + ] + }, + "deprioritized_servers": [ + { + "address": "b:27017", + "avg_rtt_ms": 50, + "type": "RSPrimary", + "tags": { + "data_center": "nyc" + } + } + ], + "suitable_servers": [ + { + "address": "c:27017", + "avg_rtt_ms": 100, + "type": "RSSecondary", + "tags": { + "data_center": "nyc" + } + }, + { + "address": "a:27017", + "avg_rtt_ms": 25, + "type": "RSPrimary", + "tags": { + "data_center": "nyc" + } + } + ], + "in_latency_window": [ + { + "address": "a:27017", + "avg_rtt_ms": 25, + "type": "RSPrimary", + "tags": { + "data_center": "nyc" + } + } + ] +} diff --git a/source/server-selection/tests/server_selection/ReplicaSetWithPrimary/read/DeprioritizedNearestStateChange.yml b/source/server-selection/tests/server_selection/ReplicaSetWithPrimary/read/DeprioritizedNearestStateChange.yml new file mode 100644 index 0000000000..134b12907f --- /dev/null +++ b/source/server-selection/tests/server_selection/ReplicaSetWithPrimary/read/DeprioritizedNearestStateChange.yml @@ -0,0 +1,41 @@ +topology_description: + type: ReplicaSetWithPrimary + servers: + - address: b:27017 + avg_rtt_ms: 5 + type: RSSecondary + tags: + data_center: nyc + - &2 + address: c:27017 + avg_rtt_ms: 100 + type: RSSecondary + tags: + data_center: nyc + - &3 + address: a:27017 + avg_rtt_ms: 25 + type: RSPrimary + tags: + data_center: nyc + +operation: read + +read_preference: + mode: Nearest + tag_sets: + - data_center: nyc + +deprioritized_servers: + - address: "b:27017" + avg_rtt_ms: 50 + type: RSPrimary + tags: + data_center: nyc + +suitable_servers: + - *2 + - *3 + +in_latency_window: + - *3