From c715f933e480ddeced38c19c71d0a202d2ac5c30 Mon Sep 17 00:00:00 2001 From: Durran Jordan Date: Mon, 5 May 2025 20:27:23 +0200 Subject: [PATCH 1/3] test(DRIVERS-3034): remove/update 4.0 related tests --- .../tests/errors/generate-error-tests.py | 13 ---- .../errors/pre-42-InterruptedAtShutdown.json | 70 ------------------- .../errors/pre-42-InterruptedAtShutdown.yml | 47 ------------- ...re-42-InterruptedDueToReplStateChange.json | 70 ------------------- ...pre-42-InterruptedDueToReplStateChange.yml | 47 ------------- .../tests/errors/pre-42-LegacyNotPrimary.json | 70 ------------------- .../tests/errors/pre-42-LegacyNotPrimary.yml | 47 ------------- .../pre-42-NotPrimaryNoSecondaryOk.json | 70 ------------------- .../errors/pre-42-NotPrimaryNoSecondaryOk.yml | 47 ------------- .../errors/pre-42-NotPrimaryOrSecondary.json | 70 ------------------- .../errors/pre-42-NotPrimaryOrSecondary.yml | 47 ------------- .../errors/pre-42-NotWritablePrimary.json | 70 ------------------- .../errors/pre-42-NotWritablePrimary.yml | 47 ------------- .../errors/pre-42-PrimarySteppedDown.json | 70 ------------------- .../errors/pre-42-PrimarySteppedDown.yml | 47 ------------- .../errors/pre-42-ShutdownInProgress.json | 70 ------------------- .../errors/pre-42-ShutdownInProgress.yml | 47 ------------- .../tests/errors/pre-42.yml.template | 47 ------------- .../tests/rs/null_election_id-pre-6.0.json | 8 +-- .../tests/rs/null_election_id-pre-6.0.yml | 8 +-- .../rs/primary_mismatched_me_not_removed.json | 4 +- .../rs/primary_mismatched_me_not_removed.yml | 4 +- ...setversion_without_electionid-pre-6.0.json | 4 +- .../setversion_without_electionid-pre-6.0.yml | 4 +- ...setversion_without_electionid-pre-6.0.json | 6 +- ..._setversion_without_electionid-pre-6.0.yml | 6 +- 26 files changed, 22 insertions(+), 1018 deletions(-) delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.json delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.yml delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.json delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.yml delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.json delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.yml delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.json delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.yml delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.json delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.yml delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.json delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.yml delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.json delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.yml delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.json delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.yml delete mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42.yml.template diff --git a/source/server-discovery-and-monitoring/tests/errors/generate-error-tests.py b/source/server-discovery-and-monitoring/tests/errors/generate-error-tests.py index c9323857ad..3c9aaa45cd 100644 --- a/source/server-discovery-and-monitoring/tests/errors/generate-error-tests.py +++ b/source/server-discovery-and-monitoring/tests/errors/generate-error-tests.py @@ -136,17 +136,6 @@ def create_stale_generation_tests(): data = tmp.format(**locals()) write_test(test_name, data) - -def create_pre_42_tests(): - tmp = template('pre-42.yml.template') - # All "not writable primary"/"node is recovering" clear the pool on <4.2 - for error_name in ERR_CODES: - test_name = f'pre-42-{error_name}' - error_code, = ERR_CODES[error_name] - data = tmp.format(**locals()) - write_test(test_name, data) - - def create_post_42_tests(): tmp = template('post-42.yml.template') for error_name in ERR_CODES: @@ -161,11 +150,9 @@ def create_post_42_tests(): data = tmp.format(**locals()) write_test(test_name, data) - create_stale_tests() create_non_stale_tests() create_stale_generation_tests() -create_pre_42_tests() create_post_42_tests() print('Running make') diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.json deleted file mode 100644 index 9f6ea212e5..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "description": "Pre-4.2 InterruptedAtShutdown error", - "uri": "mongodb://a/?replicaSet=rs", - "phases": [ - { - "description": "Primary A is discovered", - "responses": [ - [ - "a:27017", - { - "ok": 1, - "helloOk": true, - "isWritablePrimary": true, - "hosts": [ - "a:27017" - ], - "setName": "rs", - "minWireVersion": 0, - "maxWireVersion": 7 - } - ] - ], - "outcome": { - "servers": { - "a:27017": { - "type": "RSPrimary", - "setName": "rs", - "topologyVersion": null, - "pool": { - "generation": 0 - } - } - }, - "topologyType": "ReplicaSetWithPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - }, - { - "description": "Pre-4.2 InterruptedAtShutdown error marks server Unknown and clears the pool", - "applicationErrors": [ - { - "address": "a:27017", - "when": "afterHandshakeCompletes", - "maxWireVersion": 7, - "type": "command", - "response": { - "ok": 0, - "errmsg": "InterruptedAtShutdown", - "code": 11600 - } - } - ], - "outcome": { - "servers": { - "a:27017": { - "type": "Unknown", - "topologyVersion": null, - "pool": { - "generation": 1 - } - } - }, - "topologyType": "ReplicaSetNoPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - } - ] -} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.yml deleted file mode 100644 index 4996e9f25f..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Autogenerated tests for SDAM error handling, see generate-error-tests.py -description: Pre-4.2 InterruptedAtShutdown error -uri: mongodb://a/?replicaSet=rs -phases: -- description: Primary A is discovered - responses: - - - a:27017 - - ok: 1 - helloOk: true - isWritablePrimary: true - hosts: - - a:27017 - setName: rs - minWireVersion: 0 - maxWireVersion: 7 - outcome: &outcome - servers: - a:27017: - type: RSPrimary - setName: rs - topologyVersion: null - pool: - generation: 0 - topologyType: ReplicaSetWithPrimary - logicalSessionTimeoutMinutes: null - setName: rs - -- description: Pre-4.2 InterruptedAtShutdown error marks server Unknown and clears the pool - applicationErrors: - - address: a:27017 - when: afterHandshakeCompletes - maxWireVersion: 7 - type: command - response: - ok: 0 - errmsg: InterruptedAtShutdown - code: 11600 - outcome: - servers: - a:27017: - type: Unknown - topologyVersion: null - pool: - generation: 1 - topologyType: ReplicaSetNoPrimary - logicalSessionTimeoutMinutes: null - setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.json deleted file mode 100644 index 7e5f235713..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "description": "Pre-4.2 InterruptedDueToReplStateChange error", - "uri": "mongodb://a/?replicaSet=rs", - "phases": [ - { - "description": "Primary A is discovered", - "responses": [ - [ - "a:27017", - { - "ok": 1, - "helloOk": true, - "isWritablePrimary": true, - "hosts": [ - "a:27017" - ], - "setName": "rs", - "minWireVersion": 0, - "maxWireVersion": 7 - } - ] - ], - "outcome": { - "servers": { - "a:27017": { - "type": "RSPrimary", - "setName": "rs", - "topologyVersion": null, - "pool": { - "generation": 0 - } - } - }, - "topologyType": "ReplicaSetWithPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - }, - { - "description": "Pre-4.2 InterruptedDueToReplStateChange error marks server Unknown and clears the pool", - "applicationErrors": [ - { - "address": "a:27017", - "when": "afterHandshakeCompletes", - "maxWireVersion": 7, - "type": "command", - "response": { - "ok": 0, - "errmsg": "InterruptedDueToReplStateChange", - "code": 11602 - } - } - ], - "outcome": { - "servers": { - "a:27017": { - "type": "Unknown", - "topologyVersion": null, - "pool": { - "generation": 1 - } - } - }, - "topologyType": "ReplicaSetNoPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - } - ] -} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.yml deleted file mode 100644 index ada5f1ff73..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Autogenerated tests for SDAM error handling, see generate-error-tests.py -description: Pre-4.2 InterruptedDueToReplStateChange error -uri: mongodb://a/?replicaSet=rs -phases: -- description: Primary A is discovered - responses: - - - a:27017 - - ok: 1 - helloOk: true - isWritablePrimary: true - hosts: - - a:27017 - setName: rs - minWireVersion: 0 - maxWireVersion: 7 - outcome: &outcome - servers: - a:27017: - type: RSPrimary - setName: rs - topologyVersion: null - pool: - generation: 0 - topologyType: ReplicaSetWithPrimary - logicalSessionTimeoutMinutes: null - setName: rs - -- description: Pre-4.2 InterruptedDueToReplStateChange error marks server Unknown and clears the pool - applicationErrors: - - address: a:27017 - when: afterHandshakeCompletes - maxWireVersion: 7 - type: command - response: - ok: 0 - errmsg: InterruptedDueToReplStateChange - code: 11602 - outcome: - servers: - a:27017: - type: Unknown - topologyVersion: null - pool: - generation: 1 - topologyType: ReplicaSetNoPrimary - logicalSessionTimeoutMinutes: null - setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.json deleted file mode 100644 index 1635f1a856..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "description": "Pre-4.2 LegacyNotPrimary error", - "uri": "mongodb://a/?replicaSet=rs", - "phases": [ - { - "description": "Primary A is discovered", - "responses": [ - [ - "a:27017", - { - "ok": 1, - "helloOk": true, - "isWritablePrimary": true, - "hosts": [ - "a:27017" - ], - "setName": "rs", - "minWireVersion": 0, - "maxWireVersion": 7 - } - ] - ], - "outcome": { - "servers": { - "a:27017": { - "type": "RSPrimary", - "setName": "rs", - "topologyVersion": null, - "pool": { - "generation": 0 - } - } - }, - "topologyType": "ReplicaSetWithPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - }, - { - "description": "Pre-4.2 LegacyNotPrimary error marks server Unknown and clears the pool", - "applicationErrors": [ - { - "address": "a:27017", - "when": "afterHandshakeCompletes", - "maxWireVersion": 7, - "type": "command", - "response": { - "ok": 0, - "errmsg": "LegacyNotPrimary", - "code": 10058 - } - } - ], - "outcome": { - "servers": { - "a:27017": { - "type": "Unknown", - "topologyVersion": null, - "pool": { - "generation": 1 - } - } - }, - "topologyType": "ReplicaSetNoPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - } - ] -} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.yml deleted file mode 100644 index e2b37b4f5f..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Autogenerated tests for SDAM error handling, see generate-error-tests.py -description: Pre-4.2 LegacyNotPrimary error -uri: mongodb://a/?replicaSet=rs -phases: -- description: Primary A is discovered - responses: - - - a:27017 - - ok: 1 - helloOk: true - isWritablePrimary: true - hosts: - - a:27017 - setName: rs - minWireVersion: 0 - maxWireVersion: 7 - outcome: &outcome - servers: - a:27017: - type: RSPrimary - setName: rs - topologyVersion: null - pool: - generation: 0 - topologyType: ReplicaSetWithPrimary - logicalSessionTimeoutMinutes: null - setName: rs - -- description: Pre-4.2 LegacyNotPrimary error marks server Unknown and clears the pool - applicationErrors: - - address: a:27017 - when: afterHandshakeCompletes - maxWireVersion: 7 - type: command - response: - ok: 0 - errmsg: LegacyNotPrimary - code: 10058 - outcome: - servers: - a:27017: - type: Unknown - topologyVersion: null - pool: - generation: 1 - topologyType: ReplicaSetNoPrimary - logicalSessionTimeoutMinutes: null - setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.json deleted file mode 100644 index 0e70ede02c..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "description": "Pre-4.2 NotPrimaryNoSecondaryOk error", - "uri": "mongodb://a/?replicaSet=rs", - "phases": [ - { - "description": "Primary A is discovered", - "responses": [ - [ - "a:27017", - { - "ok": 1, - "helloOk": true, - "isWritablePrimary": true, - "hosts": [ - "a:27017" - ], - "setName": "rs", - "minWireVersion": 0, - "maxWireVersion": 7 - } - ] - ], - "outcome": { - "servers": { - "a:27017": { - "type": "RSPrimary", - "setName": "rs", - "topologyVersion": null, - "pool": { - "generation": 0 - } - } - }, - "topologyType": "ReplicaSetWithPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - }, - { - "description": "Pre-4.2 NotPrimaryNoSecondaryOk error marks server Unknown and clears the pool", - "applicationErrors": [ - { - "address": "a:27017", - "when": "afterHandshakeCompletes", - "maxWireVersion": 7, - "type": "command", - "response": { - "ok": 0, - "errmsg": "NotPrimaryNoSecondaryOk", - "code": 13435 - } - } - ], - "outcome": { - "servers": { - "a:27017": { - "type": "Unknown", - "topologyVersion": null, - "pool": { - "generation": 1 - } - } - }, - "topologyType": "ReplicaSetNoPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - } - ] -} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.yml deleted file mode 100644 index 867b7d3dc1..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Autogenerated tests for SDAM error handling, see generate-error-tests.py -description: Pre-4.2 NotPrimaryNoSecondaryOk error -uri: mongodb://a/?replicaSet=rs -phases: -- description: Primary A is discovered - responses: - - - a:27017 - - ok: 1 - helloOk: true - isWritablePrimary: true - hosts: - - a:27017 - setName: rs - minWireVersion: 0 - maxWireVersion: 7 - outcome: &outcome - servers: - a:27017: - type: RSPrimary - setName: rs - topologyVersion: null - pool: - generation: 0 - topologyType: ReplicaSetWithPrimary - logicalSessionTimeoutMinutes: null - setName: rs - -- description: Pre-4.2 NotPrimaryNoSecondaryOk error marks server Unknown and clears the pool - applicationErrors: - - address: a:27017 - when: afterHandshakeCompletes - maxWireVersion: 7 - type: command - response: - ok: 0 - errmsg: NotPrimaryNoSecondaryOk - code: 13435 - outcome: - servers: - a:27017: - type: Unknown - topologyVersion: null - pool: - generation: 1 - topologyType: ReplicaSetNoPrimary - logicalSessionTimeoutMinutes: null - setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.json deleted file mode 100644 index 3fefb21663..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "description": "Pre-4.2 NotPrimaryOrSecondary error", - "uri": "mongodb://a/?replicaSet=rs", - "phases": [ - { - "description": "Primary A is discovered", - "responses": [ - [ - "a:27017", - { - "ok": 1, - "helloOk": true, - "isWritablePrimary": true, - "hosts": [ - "a:27017" - ], - "setName": "rs", - "minWireVersion": 0, - "maxWireVersion": 7 - } - ] - ], - "outcome": { - "servers": { - "a:27017": { - "type": "RSPrimary", - "setName": "rs", - "topologyVersion": null, - "pool": { - "generation": 0 - } - } - }, - "topologyType": "ReplicaSetWithPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - }, - { - "description": "Pre-4.2 NotPrimaryOrSecondary error marks server Unknown and clears the pool", - "applicationErrors": [ - { - "address": "a:27017", - "when": "afterHandshakeCompletes", - "maxWireVersion": 7, - "type": "command", - "response": { - "ok": 0, - "errmsg": "NotPrimaryOrSecondary", - "code": 13436 - } - } - ], - "outcome": { - "servers": { - "a:27017": { - "type": "Unknown", - "topologyVersion": null, - "pool": { - "generation": 1 - } - } - }, - "topologyType": "ReplicaSetNoPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - } - ] -} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.yml deleted file mode 100644 index 705e2339c0..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Autogenerated tests for SDAM error handling, see generate-error-tests.py -description: Pre-4.2 NotPrimaryOrSecondary error -uri: mongodb://a/?replicaSet=rs -phases: -- description: Primary A is discovered - responses: - - - a:27017 - - ok: 1 - helloOk: true - isWritablePrimary: true - hosts: - - a:27017 - setName: rs - minWireVersion: 0 - maxWireVersion: 7 - outcome: &outcome - servers: - a:27017: - type: RSPrimary - setName: rs - topologyVersion: null - pool: - generation: 0 - topologyType: ReplicaSetWithPrimary - logicalSessionTimeoutMinutes: null - setName: rs - -- description: Pre-4.2 NotPrimaryOrSecondary error marks server Unknown and clears the pool - applicationErrors: - - address: a:27017 - when: afterHandshakeCompletes - maxWireVersion: 7 - type: command - response: - ok: 0 - errmsg: NotPrimaryOrSecondary - code: 13436 - outcome: - servers: - a:27017: - type: Unknown - topologyVersion: null - pool: - generation: 1 - topologyType: ReplicaSetNoPrimary - logicalSessionTimeoutMinutes: null - setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.json deleted file mode 100644 index d010da0a5b..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "description": "Pre-4.2 NotWritablePrimary error", - "uri": "mongodb://a/?replicaSet=rs", - "phases": [ - { - "description": "Primary A is discovered", - "responses": [ - [ - "a:27017", - { - "ok": 1, - "helloOk": true, - "isWritablePrimary": true, - "hosts": [ - "a:27017" - ], - "setName": "rs", - "minWireVersion": 0, - "maxWireVersion": 7 - } - ] - ], - "outcome": { - "servers": { - "a:27017": { - "type": "RSPrimary", - "setName": "rs", - "topologyVersion": null, - "pool": { - "generation": 0 - } - } - }, - "topologyType": "ReplicaSetWithPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - }, - { - "description": "Pre-4.2 NotWritablePrimary error marks server Unknown and clears the pool", - "applicationErrors": [ - { - "address": "a:27017", - "when": "afterHandshakeCompletes", - "maxWireVersion": 7, - "type": "command", - "response": { - "ok": 0, - "errmsg": "NotWritablePrimary", - "code": 10107 - } - } - ], - "outcome": { - "servers": { - "a:27017": { - "type": "Unknown", - "topologyVersion": null, - "pool": { - "generation": 1 - } - } - }, - "topologyType": "ReplicaSetNoPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - } - ] -} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.yml deleted file mode 100644 index 29669ff336..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Autogenerated tests for SDAM error handling, see generate-error-tests.py -description: Pre-4.2 NotWritablePrimary error -uri: mongodb://a/?replicaSet=rs -phases: -- description: Primary A is discovered - responses: - - - a:27017 - - ok: 1 - helloOk: true - isWritablePrimary: true - hosts: - - a:27017 - setName: rs - minWireVersion: 0 - maxWireVersion: 7 - outcome: &outcome - servers: - a:27017: - type: RSPrimary - setName: rs - topologyVersion: null - pool: - generation: 0 - topologyType: ReplicaSetWithPrimary - logicalSessionTimeoutMinutes: null - setName: rs - -- description: Pre-4.2 NotWritablePrimary error marks server Unknown and clears the pool - applicationErrors: - - address: a:27017 - when: afterHandshakeCompletes - maxWireVersion: 7 - type: command - response: - ok: 0 - errmsg: NotWritablePrimary - code: 10107 - outcome: - servers: - a:27017: - type: Unknown - topologyVersion: null - pool: - generation: 1 - topologyType: ReplicaSetNoPrimary - logicalSessionTimeoutMinutes: null - setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.json deleted file mode 100644 index 02956d201d..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "description": "Pre-4.2 PrimarySteppedDown error", - "uri": "mongodb://a/?replicaSet=rs", - "phases": [ - { - "description": "Primary A is discovered", - "responses": [ - [ - "a:27017", - { - "ok": 1, - "helloOk": true, - "isWritablePrimary": true, - "hosts": [ - "a:27017" - ], - "setName": "rs", - "minWireVersion": 0, - "maxWireVersion": 7 - } - ] - ], - "outcome": { - "servers": { - "a:27017": { - "type": "RSPrimary", - "setName": "rs", - "topologyVersion": null, - "pool": { - "generation": 0 - } - } - }, - "topologyType": "ReplicaSetWithPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - }, - { - "description": "Pre-4.2 PrimarySteppedDown error marks server Unknown and clears the pool", - "applicationErrors": [ - { - "address": "a:27017", - "when": "afterHandshakeCompletes", - "maxWireVersion": 7, - "type": "command", - "response": { - "ok": 0, - "errmsg": "PrimarySteppedDown", - "code": 189 - } - } - ], - "outcome": { - "servers": { - "a:27017": { - "type": "Unknown", - "topologyVersion": null, - "pool": { - "generation": 1 - } - } - }, - "topologyType": "ReplicaSetNoPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - } - ] -} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.yml deleted file mode 100644 index 9176ee25c3..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Autogenerated tests for SDAM error handling, see generate-error-tests.py -description: Pre-4.2 PrimarySteppedDown error -uri: mongodb://a/?replicaSet=rs -phases: -- description: Primary A is discovered - responses: - - - a:27017 - - ok: 1 - helloOk: true - isWritablePrimary: true - hosts: - - a:27017 - setName: rs - minWireVersion: 0 - maxWireVersion: 7 - outcome: &outcome - servers: - a:27017: - type: RSPrimary - setName: rs - topologyVersion: null - pool: - generation: 0 - topologyType: ReplicaSetWithPrimary - logicalSessionTimeoutMinutes: null - setName: rs - -- description: Pre-4.2 PrimarySteppedDown error marks server Unknown and clears the pool - applicationErrors: - - address: a:27017 - when: afterHandshakeCompletes - maxWireVersion: 7 - type: command - response: - ok: 0 - errmsg: PrimarySteppedDown - code: 189 - outcome: - servers: - a:27017: - type: Unknown - topologyVersion: null - pool: - generation: 1 - topologyType: ReplicaSetNoPrimary - logicalSessionTimeoutMinutes: null - setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.json deleted file mode 100644 index fc3a5aa6fe..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "description": "Pre-4.2 ShutdownInProgress error", - "uri": "mongodb://a/?replicaSet=rs", - "phases": [ - { - "description": "Primary A is discovered", - "responses": [ - [ - "a:27017", - { - "ok": 1, - "helloOk": true, - "isWritablePrimary": true, - "hosts": [ - "a:27017" - ], - "setName": "rs", - "minWireVersion": 0, - "maxWireVersion": 7 - } - ] - ], - "outcome": { - "servers": { - "a:27017": { - "type": "RSPrimary", - "setName": "rs", - "topologyVersion": null, - "pool": { - "generation": 0 - } - } - }, - "topologyType": "ReplicaSetWithPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - }, - { - "description": "Pre-4.2 ShutdownInProgress error marks server Unknown and clears the pool", - "applicationErrors": [ - { - "address": "a:27017", - "when": "afterHandshakeCompletes", - "maxWireVersion": 7, - "type": "command", - "response": { - "ok": 0, - "errmsg": "ShutdownInProgress", - "code": 91 - } - } - ], - "outcome": { - "servers": { - "a:27017": { - "type": "Unknown", - "topologyVersion": null, - "pool": { - "generation": 1 - } - } - }, - "topologyType": "ReplicaSetNoPrimary", - "logicalSessionTimeoutMinutes": null, - "setName": "rs" - } - } - ] -} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.yml deleted file mode 100644 index 5c64050e59..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Autogenerated tests for SDAM error handling, see generate-error-tests.py -description: Pre-4.2 ShutdownInProgress error -uri: mongodb://a/?replicaSet=rs -phases: -- description: Primary A is discovered - responses: - - - a:27017 - - ok: 1 - helloOk: true - isWritablePrimary: true - hosts: - - a:27017 - setName: rs - minWireVersion: 0 - maxWireVersion: 7 - outcome: &outcome - servers: - a:27017: - type: RSPrimary - setName: rs - topologyVersion: null - pool: - generation: 0 - topologyType: ReplicaSetWithPrimary - logicalSessionTimeoutMinutes: null - setName: rs - -- description: Pre-4.2 ShutdownInProgress error marks server Unknown and clears the pool - applicationErrors: - - address: a:27017 - when: afterHandshakeCompletes - maxWireVersion: 7 - type: command - response: - ok: 0 - errmsg: ShutdownInProgress - code: 91 - outcome: - servers: - a:27017: - type: Unknown - topologyVersion: null - pool: - generation: 1 - topologyType: ReplicaSetNoPrimary - logicalSessionTimeoutMinutes: null - setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42.yml.template b/source/server-discovery-and-monitoring/tests/errors/pre-42.yml.template deleted file mode 100644 index 7449f68c16..0000000000 --- a/source/server-discovery-and-monitoring/tests/errors/pre-42.yml.template +++ /dev/null @@ -1,47 +0,0 @@ -# Autogenerated tests for SDAM error handling, see generate-error-tests.py -description: Pre-4.2 {error_name} error -uri: mongodb://a/?replicaSet=rs -phases: -- description: Primary A is discovered - responses: - - - a:27017 - - ok: 1 - helloOk: true - isWritablePrimary: true - hosts: - - a:27017 - setName: rs - minWireVersion: 0 - maxWireVersion: 7 - outcome: &outcome - servers: - a:27017: - type: RSPrimary - setName: rs - topologyVersion: null - pool: - generation: 0 - topologyType: ReplicaSetWithPrimary - logicalSessionTimeoutMinutes: null - setName: rs - -- description: Pre-4.2 {error_name} error marks server Unknown and clears the pool - applicationErrors: - - address: a:27017 - when: afterHandshakeCompletes - maxWireVersion: 7 - type: command - response: - ok: 0 - errmsg: {error_name} - code: {error_code} - outcome: - servers: - a:27017: - type: Unknown - topologyVersion: null - pool: - generation: 1 - topologyType: ReplicaSetNoPrimary - logicalSessionTimeoutMinutes: null - setName: rs diff --git a/source/server-discovery-and-monitoring/tests/rs/null_election_id-pre-6.0.json b/source/server-discovery-and-monitoring/tests/rs/null_election_id-pre-6.0.json index 7261fbfc2a..8a77f31c50 100644 --- a/source/server-discovery-and-monitoring/tests/rs/null_election_id-pre-6.0.json +++ b/source/server-discovery-and-monitoring/tests/rs/null_election_id-pre-6.0.json @@ -18,7 +18,7 @@ "setVersion": 1, "setName": "rs", "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 16 } ] ], @@ -66,7 +66,7 @@ "$oid": "000000000000000000000002" }, "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 16 } ] ], @@ -116,7 +116,7 @@ "setVersion": 1, "setName": "rs", "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 16 } ] ], @@ -167,7 +167,7 @@ "$oid": "000000000000000000000001" }, "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 16 } ] ], diff --git a/source/server-discovery-and-monitoring/tests/rs/null_election_id-pre-6.0.yml b/source/server-discovery-and-monitoring/tests/rs/null_election_id-pre-6.0.yml index 63f9699f22..5313a8adf3 100644 --- a/source/server-discovery-and-monitoring/tests/rs/null_election_id-pre-6.0.yml +++ b/source/server-discovery-and-monitoring/tests/rs/null_election_id-pre-6.0.yml @@ -15,7 +15,7 @@ phases: [ setVersion: 1, setName: "rs", minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 16 }] ], @@ -57,7 +57,7 @@ phases: [ setVersion: 1, electionId: {"$oid": "000000000000000000000002"}, minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 16 }] ], @@ -99,7 +99,7 @@ phases: [ setVersion: 1, setName: "rs", minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 16 }] ], outcome: { @@ -142,7 +142,7 @@ phases: [ setVersion: 1, electionId: {"$oid": "000000000000000000000001"}, minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 16 }] ], outcome: { diff --git a/source/server-discovery-and-monitoring/tests/rs/primary_mismatched_me_not_removed.json b/source/server-discovery-and-monitoring/tests/rs/primary_mismatched_me_not_removed.json index 4c40093659..a55dcfc6d4 100644 --- a/source/server-discovery-and-monitoring/tests/rs/primary_mismatched_me_not_removed.json +++ b/source/server-discovery-and-monitoring/tests/rs/primary_mismatched_me_not_removed.json @@ -18,7 +18,7 @@ "primary": "localhost:27017", "me": "a:27017", "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 25 } ] ], @@ -55,7 +55,7 @@ "primary": "localhost:27017", "me": "localhost:27018", "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 25 } ] ], diff --git a/source/server-discovery-and-monitoring/tests/rs/primary_mismatched_me_not_removed.yml b/source/server-discovery-and-monitoring/tests/rs/primary_mismatched_me_not_removed.yml index 5b7e92e603..ae0c3bb506 100644 --- a/source/server-discovery-and-monitoring/tests/rs/primary_mismatched_me_not_removed.yml +++ b/source/server-discovery-and-monitoring/tests/rs/primary_mismatched_me_not_removed.yml @@ -19,7 +19,7 @@ phases: [ # servers from a primary isWritablePrimary are added to the working server set me: "a:27017", minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 25 }] ], outcome: { @@ -53,7 +53,7 @@ phases: [ primary: "localhost:27017", me: "localhost:27018", minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 25 }] ], outcome: { diff --git a/source/server-discovery-and-monitoring/tests/rs/setversion_without_electionid-pre-6.0.json b/source/server-discovery-and-monitoring/tests/rs/setversion_without_electionid-pre-6.0.json index 87029e578b..9a1ee61399 100644 --- a/source/server-discovery-and-monitoring/tests/rs/setversion_without_electionid-pre-6.0.json +++ b/source/server-discovery-and-monitoring/tests/rs/setversion_without_electionid-pre-6.0.json @@ -17,7 +17,7 @@ "setName": "rs", "setVersion": 2, "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 16 } ] ], @@ -56,7 +56,7 @@ "setName": "rs", "setVersion": 1, "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 16 } ] ], diff --git a/source/server-discovery-and-monitoring/tests/rs/setversion_without_electionid-pre-6.0.yml b/source/server-discovery-and-monitoring/tests/rs/setversion_without_electionid-pre-6.0.yml index 0fd735dcc5..41a89e0fb3 100644 --- a/source/server-discovery-and-monitoring/tests/rs/setversion_without_electionid-pre-6.0.yml +++ b/source/server-discovery-and-monitoring/tests/rs/setversion_without_electionid-pre-6.0.yml @@ -15,7 +15,7 @@ phases: [ setName: "rs", setVersion: 2, minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 16 }] ], @@ -52,7 +52,7 @@ phases: [ setName: "rs", setVersion: 1, minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 16 }] ], diff --git a/source/server-discovery-and-monitoring/tests/rs/use_setversion_without_electionid-pre-6.0.json b/source/server-discovery-and-monitoring/tests/rs/use_setversion_without_electionid-pre-6.0.json index a63efeac12..03195aacde 100644 --- a/source/server-discovery-and-monitoring/tests/rs/use_setversion_without_electionid-pre-6.0.json +++ b/source/server-discovery-and-monitoring/tests/rs/use_setversion_without_electionid-pre-6.0.json @@ -20,7 +20,7 @@ "$oid": "000000000000000000000001" }, "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 16 } ] ], @@ -64,7 +64,7 @@ "setName": "rs", "setVersion": 2, "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 16 } ] ], @@ -109,7 +109,7 @@ "$oid": "000000000000000000000002" }, "minWireVersion": 0, - "maxWireVersion": 7 + "maxWireVersion": 16 } ] ], diff --git a/source/server-discovery-and-monitoring/tests/rs/use_setversion_without_electionid-pre-6.0.yml b/source/server-discovery-and-monitoring/tests/rs/use_setversion_without_electionid-pre-6.0.yml index d02fba5d52..4849b01fcd 100644 --- a/source/server-discovery-and-monitoring/tests/rs/use_setversion_without_electionid-pre-6.0.yml +++ b/source/server-discovery-and-monitoring/tests/rs/use_setversion_without_electionid-pre-6.0.yml @@ -16,7 +16,7 @@ phases: [ setVersion: 1, electionId: {"$oid": "000000000000000000000001"}, minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 16 }] ], @@ -53,7 +53,7 @@ phases: [ setName: "rs", setVersion: 2, minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 16 }] ], @@ -92,7 +92,7 @@ phases: [ setVersion: 1, electionId: {"$oid": "000000000000000000000002"}, minWireVersion: 0, - maxWireVersion: 7 + maxWireVersion: 16 }] ], outcome: { From 3bfcccc91f530f5b8a2e8c19cf892541a9216fce Mon Sep 17 00:00:00 2001 From: Durran Jordan Date: Tue, 6 May 2025 21:27:05 +0200 Subject: [PATCH 2/3] remove old change stream test --- source/change-streams/tests/README.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/source/change-streams/tests/README.md b/source/change-streams/tests/README.md index 9813731591..3804168576 100644 --- a/source/change-streams/tests/README.md +++ b/source/change-streams/tests/README.md @@ -194,23 +194,13 @@ and sharded clusters unless otherwise specified: 11. For a `ChangeStream` under these conditions: - - Running against a server `>=4.0.7`. - The batch is empty or has been iterated to the last document. Expected result: - `getResumeToken` must return the `postBatchResumeToken` from the current command response. -12. For a `ChangeStream` under these conditions: - - - Running against a server `<4.0.7`. - - The batch is empty or has been iterated to the last document. - - Expected result: - - - `getResumeToken` must return the `_id` of the last document returned if one exists. - - `getResumeToken` must return `resumeAfter` from the initial aggregate if the option was specified. - - If `resumeAfter` was not specified, the `getResumeToken` result must be empty. +12. **Removed** 13. For a `ChangeStream` under these conditions: From 955c3cd439262f409dc2094722c4526f1b249a7b Mon Sep 17 00:00:00 2001 From: Durran Jordan Date: Wed, 7 May 2025 22:22:51 +0200 Subject: [PATCH 3/3] fix: bring back 4.2 tests --- .../tests/errors/generate-error-tests.py | 13 ++++ .../errors/pre-42-InterruptedAtShutdown.json | 70 +++++++++++++++++++ .../errors/pre-42-InterruptedAtShutdown.yml | 47 +++++++++++++ ...re-42-InterruptedDueToReplStateChange.json | 70 +++++++++++++++++++ ...pre-42-InterruptedDueToReplStateChange.yml | 47 +++++++++++++ .../tests/errors/pre-42-LegacyNotPrimary.json | 70 +++++++++++++++++++ .../tests/errors/pre-42-LegacyNotPrimary.yml | 47 +++++++++++++ .../pre-42-NotPrimaryNoSecondaryOk.json | 70 +++++++++++++++++++ .../errors/pre-42-NotPrimaryNoSecondaryOk.yml | 47 +++++++++++++ .../errors/pre-42-NotPrimaryOrSecondary.json | 70 +++++++++++++++++++ .../errors/pre-42-NotPrimaryOrSecondary.yml | 47 +++++++++++++ .../errors/pre-42-NotWritablePrimary.json | 70 +++++++++++++++++++ .../errors/pre-42-NotWritablePrimary.yml | 47 +++++++++++++ .../errors/pre-42-PrimarySteppedDown.json | 70 +++++++++++++++++++ .../errors/pre-42-PrimarySteppedDown.yml | 47 +++++++++++++ .../errors/pre-42-ShutdownInProgress.json | 70 +++++++++++++++++++ .../errors/pre-42-ShutdownInProgress.yml | 47 +++++++++++++ .../tests/errors/pre-42.yml.template | 47 +++++++++++++ 18 files changed, 996 insertions(+) create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.json create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.yml create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.json create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.yml create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.json create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.yml create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.json create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.yml create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.json create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.yml create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.json create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.yml create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.json create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.yml create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.json create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.yml create mode 100644 source/server-discovery-and-monitoring/tests/errors/pre-42.yml.template diff --git a/source/server-discovery-and-monitoring/tests/errors/generate-error-tests.py b/source/server-discovery-and-monitoring/tests/errors/generate-error-tests.py index 3c9aaa45cd..c9323857ad 100644 --- a/source/server-discovery-and-monitoring/tests/errors/generate-error-tests.py +++ b/source/server-discovery-and-monitoring/tests/errors/generate-error-tests.py @@ -136,6 +136,17 @@ def create_stale_generation_tests(): data = tmp.format(**locals()) write_test(test_name, data) + +def create_pre_42_tests(): + tmp = template('pre-42.yml.template') + # All "not writable primary"/"node is recovering" clear the pool on <4.2 + for error_name in ERR_CODES: + test_name = f'pre-42-{error_name}' + error_code, = ERR_CODES[error_name] + data = tmp.format(**locals()) + write_test(test_name, data) + + def create_post_42_tests(): tmp = template('post-42.yml.template') for error_name in ERR_CODES: @@ -150,9 +161,11 @@ def create_post_42_tests(): data = tmp.format(**locals()) write_test(test_name, data) + create_stale_tests() create_non_stale_tests() create_stale_generation_tests() +create_pre_42_tests() create_post_42_tests() print('Running make') diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.json new file mode 100644 index 0000000000..9f6ea212e5 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.json @@ -0,0 +1,70 @@ +{ + "description": "Pre-4.2 InterruptedAtShutdown error", + "uri": "mongodb://a/?replicaSet=rs", + "phases": [ + { + "description": "Primary A is discovered", + "responses": [ + [ + "a:27017", + { + "ok": 1, + "helloOk": true, + "isWritablePrimary": true, + "hosts": [ + "a:27017" + ], + "setName": "rs", + "minWireVersion": 0, + "maxWireVersion": 7 + } + ] + ], + "outcome": { + "servers": { + "a:27017": { + "type": "RSPrimary", + "setName": "rs", + "topologyVersion": null, + "pool": { + "generation": 0 + } + } + }, + "topologyType": "ReplicaSetWithPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + }, + { + "description": "Pre-4.2 InterruptedAtShutdown error marks server Unknown and clears the pool", + "applicationErrors": [ + { + "address": "a:27017", + "when": "afterHandshakeCompletes", + "maxWireVersion": 7, + "type": "command", + "response": { + "ok": 0, + "errmsg": "InterruptedAtShutdown", + "code": 11600 + } + } + ], + "outcome": { + "servers": { + "a:27017": { + "type": "Unknown", + "topologyVersion": null, + "pool": { + "generation": 1 + } + } + }, + "topologyType": "ReplicaSetNoPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + } + ] +} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.yml new file mode 100644 index 0000000000..4996e9f25f --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedAtShutdown.yml @@ -0,0 +1,47 @@ +# Autogenerated tests for SDAM error handling, see generate-error-tests.py +description: Pre-4.2 InterruptedAtShutdown error +uri: mongodb://a/?replicaSet=rs +phases: +- description: Primary A is discovered + responses: + - - a:27017 + - ok: 1 + helloOk: true + isWritablePrimary: true + hosts: + - a:27017 + setName: rs + minWireVersion: 0 + maxWireVersion: 7 + outcome: &outcome + servers: + a:27017: + type: RSPrimary + setName: rs + topologyVersion: null + pool: + generation: 0 + topologyType: ReplicaSetWithPrimary + logicalSessionTimeoutMinutes: null + setName: rs + +- description: Pre-4.2 InterruptedAtShutdown error marks server Unknown and clears the pool + applicationErrors: + - address: a:27017 + when: afterHandshakeCompletes + maxWireVersion: 7 + type: command + response: + ok: 0 + errmsg: InterruptedAtShutdown + code: 11600 + outcome: + servers: + a:27017: + type: Unknown + topologyVersion: null + pool: + generation: 1 + topologyType: ReplicaSetNoPrimary + logicalSessionTimeoutMinutes: null + setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.json new file mode 100644 index 0000000000..7e5f235713 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.json @@ -0,0 +1,70 @@ +{ + "description": "Pre-4.2 InterruptedDueToReplStateChange error", + "uri": "mongodb://a/?replicaSet=rs", + "phases": [ + { + "description": "Primary A is discovered", + "responses": [ + [ + "a:27017", + { + "ok": 1, + "helloOk": true, + "isWritablePrimary": true, + "hosts": [ + "a:27017" + ], + "setName": "rs", + "minWireVersion": 0, + "maxWireVersion": 7 + } + ] + ], + "outcome": { + "servers": { + "a:27017": { + "type": "RSPrimary", + "setName": "rs", + "topologyVersion": null, + "pool": { + "generation": 0 + } + } + }, + "topologyType": "ReplicaSetWithPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + }, + { + "description": "Pre-4.2 InterruptedDueToReplStateChange error marks server Unknown and clears the pool", + "applicationErrors": [ + { + "address": "a:27017", + "when": "afterHandshakeCompletes", + "maxWireVersion": 7, + "type": "command", + "response": { + "ok": 0, + "errmsg": "InterruptedDueToReplStateChange", + "code": 11602 + } + } + ], + "outcome": { + "servers": { + "a:27017": { + "type": "Unknown", + "topologyVersion": null, + "pool": { + "generation": 1 + } + } + }, + "topologyType": "ReplicaSetNoPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + } + ] +} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.yml new file mode 100644 index 0000000000..ada5f1ff73 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-InterruptedDueToReplStateChange.yml @@ -0,0 +1,47 @@ +# Autogenerated tests for SDAM error handling, see generate-error-tests.py +description: Pre-4.2 InterruptedDueToReplStateChange error +uri: mongodb://a/?replicaSet=rs +phases: +- description: Primary A is discovered + responses: + - - a:27017 + - ok: 1 + helloOk: true + isWritablePrimary: true + hosts: + - a:27017 + setName: rs + minWireVersion: 0 + maxWireVersion: 7 + outcome: &outcome + servers: + a:27017: + type: RSPrimary + setName: rs + topologyVersion: null + pool: + generation: 0 + topologyType: ReplicaSetWithPrimary + logicalSessionTimeoutMinutes: null + setName: rs + +- description: Pre-4.2 InterruptedDueToReplStateChange error marks server Unknown and clears the pool + applicationErrors: + - address: a:27017 + when: afterHandshakeCompletes + maxWireVersion: 7 + type: command + response: + ok: 0 + errmsg: InterruptedDueToReplStateChange + code: 11602 + outcome: + servers: + a:27017: + type: Unknown + topologyVersion: null + pool: + generation: 1 + topologyType: ReplicaSetNoPrimary + logicalSessionTimeoutMinutes: null + setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.json new file mode 100644 index 0000000000..1635f1a856 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.json @@ -0,0 +1,70 @@ +{ + "description": "Pre-4.2 LegacyNotPrimary error", + "uri": "mongodb://a/?replicaSet=rs", + "phases": [ + { + "description": "Primary A is discovered", + "responses": [ + [ + "a:27017", + { + "ok": 1, + "helloOk": true, + "isWritablePrimary": true, + "hosts": [ + "a:27017" + ], + "setName": "rs", + "minWireVersion": 0, + "maxWireVersion": 7 + } + ] + ], + "outcome": { + "servers": { + "a:27017": { + "type": "RSPrimary", + "setName": "rs", + "topologyVersion": null, + "pool": { + "generation": 0 + } + } + }, + "topologyType": "ReplicaSetWithPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + }, + { + "description": "Pre-4.2 LegacyNotPrimary error marks server Unknown and clears the pool", + "applicationErrors": [ + { + "address": "a:27017", + "when": "afterHandshakeCompletes", + "maxWireVersion": 7, + "type": "command", + "response": { + "ok": 0, + "errmsg": "LegacyNotPrimary", + "code": 10058 + } + } + ], + "outcome": { + "servers": { + "a:27017": { + "type": "Unknown", + "topologyVersion": null, + "pool": { + "generation": 1 + } + } + }, + "topologyType": "ReplicaSetNoPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + } + ] +} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.yml new file mode 100644 index 0000000000..e2b37b4f5f --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-LegacyNotPrimary.yml @@ -0,0 +1,47 @@ +# Autogenerated tests for SDAM error handling, see generate-error-tests.py +description: Pre-4.2 LegacyNotPrimary error +uri: mongodb://a/?replicaSet=rs +phases: +- description: Primary A is discovered + responses: + - - a:27017 + - ok: 1 + helloOk: true + isWritablePrimary: true + hosts: + - a:27017 + setName: rs + minWireVersion: 0 + maxWireVersion: 7 + outcome: &outcome + servers: + a:27017: + type: RSPrimary + setName: rs + topologyVersion: null + pool: + generation: 0 + topologyType: ReplicaSetWithPrimary + logicalSessionTimeoutMinutes: null + setName: rs + +- description: Pre-4.2 LegacyNotPrimary error marks server Unknown and clears the pool + applicationErrors: + - address: a:27017 + when: afterHandshakeCompletes + maxWireVersion: 7 + type: command + response: + ok: 0 + errmsg: LegacyNotPrimary + code: 10058 + outcome: + servers: + a:27017: + type: Unknown + topologyVersion: null + pool: + generation: 1 + topologyType: ReplicaSetNoPrimary + logicalSessionTimeoutMinutes: null + setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.json new file mode 100644 index 0000000000..0e70ede02c --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.json @@ -0,0 +1,70 @@ +{ + "description": "Pre-4.2 NotPrimaryNoSecondaryOk error", + "uri": "mongodb://a/?replicaSet=rs", + "phases": [ + { + "description": "Primary A is discovered", + "responses": [ + [ + "a:27017", + { + "ok": 1, + "helloOk": true, + "isWritablePrimary": true, + "hosts": [ + "a:27017" + ], + "setName": "rs", + "minWireVersion": 0, + "maxWireVersion": 7 + } + ] + ], + "outcome": { + "servers": { + "a:27017": { + "type": "RSPrimary", + "setName": "rs", + "topologyVersion": null, + "pool": { + "generation": 0 + } + } + }, + "topologyType": "ReplicaSetWithPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + }, + { + "description": "Pre-4.2 NotPrimaryNoSecondaryOk error marks server Unknown and clears the pool", + "applicationErrors": [ + { + "address": "a:27017", + "when": "afterHandshakeCompletes", + "maxWireVersion": 7, + "type": "command", + "response": { + "ok": 0, + "errmsg": "NotPrimaryNoSecondaryOk", + "code": 13435 + } + } + ], + "outcome": { + "servers": { + "a:27017": { + "type": "Unknown", + "topologyVersion": null, + "pool": { + "generation": 1 + } + } + }, + "topologyType": "ReplicaSetNoPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + } + ] +} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.yml new file mode 100644 index 0000000000..867b7d3dc1 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryNoSecondaryOk.yml @@ -0,0 +1,47 @@ +# Autogenerated tests for SDAM error handling, see generate-error-tests.py +description: Pre-4.2 NotPrimaryNoSecondaryOk error +uri: mongodb://a/?replicaSet=rs +phases: +- description: Primary A is discovered + responses: + - - a:27017 + - ok: 1 + helloOk: true + isWritablePrimary: true + hosts: + - a:27017 + setName: rs + minWireVersion: 0 + maxWireVersion: 7 + outcome: &outcome + servers: + a:27017: + type: RSPrimary + setName: rs + topologyVersion: null + pool: + generation: 0 + topologyType: ReplicaSetWithPrimary + logicalSessionTimeoutMinutes: null + setName: rs + +- description: Pre-4.2 NotPrimaryNoSecondaryOk error marks server Unknown and clears the pool + applicationErrors: + - address: a:27017 + when: afterHandshakeCompletes + maxWireVersion: 7 + type: command + response: + ok: 0 + errmsg: NotPrimaryNoSecondaryOk + code: 13435 + outcome: + servers: + a:27017: + type: Unknown + topologyVersion: null + pool: + generation: 1 + topologyType: ReplicaSetNoPrimary + logicalSessionTimeoutMinutes: null + setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.json new file mode 100644 index 0000000000..3fefb21663 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.json @@ -0,0 +1,70 @@ +{ + "description": "Pre-4.2 NotPrimaryOrSecondary error", + "uri": "mongodb://a/?replicaSet=rs", + "phases": [ + { + "description": "Primary A is discovered", + "responses": [ + [ + "a:27017", + { + "ok": 1, + "helloOk": true, + "isWritablePrimary": true, + "hosts": [ + "a:27017" + ], + "setName": "rs", + "minWireVersion": 0, + "maxWireVersion": 7 + } + ] + ], + "outcome": { + "servers": { + "a:27017": { + "type": "RSPrimary", + "setName": "rs", + "topologyVersion": null, + "pool": { + "generation": 0 + } + } + }, + "topologyType": "ReplicaSetWithPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + }, + { + "description": "Pre-4.2 NotPrimaryOrSecondary error marks server Unknown and clears the pool", + "applicationErrors": [ + { + "address": "a:27017", + "when": "afterHandshakeCompletes", + "maxWireVersion": 7, + "type": "command", + "response": { + "ok": 0, + "errmsg": "NotPrimaryOrSecondary", + "code": 13436 + } + } + ], + "outcome": { + "servers": { + "a:27017": { + "type": "Unknown", + "topologyVersion": null, + "pool": { + "generation": 1 + } + } + }, + "topologyType": "ReplicaSetNoPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + } + ] +} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.yml new file mode 100644 index 0000000000..705e2339c0 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotPrimaryOrSecondary.yml @@ -0,0 +1,47 @@ +# Autogenerated tests for SDAM error handling, see generate-error-tests.py +description: Pre-4.2 NotPrimaryOrSecondary error +uri: mongodb://a/?replicaSet=rs +phases: +- description: Primary A is discovered + responses: + - - a:27017 + - ok: 1 + helloOk: true + isWritablePrimary: true + hosts: + - a:27017 + setName: rs + minWireVersion: 0 + maxWireVersion: 7 + outcome: &outcome + servers: + a:27017: + type: RSPrimary + setName: rs + topologyVersion: null + pool: + generation: 0 + topologyType: ReplicaSetWithPrimary + logicalSessionTimeoutMinutes: null + setName: rs + +- description: Pre-4.2 NotPrimaryOrSecondary error marks server Unknown and clears the pool + applicationErrors: + - address: a:27017 + when: afterHandshakeCompletes + maxWireVersion: 7 + type: command + response: + ok: 0 + errmsg: NotPrimaryOrSecondary + code: 13436 + outcome: + servers: + a:27017: + type: Unknown + topologyVersion: null + pool: + generation: 1 + topologyType: ReplicaSetNoPrimary + logicalSessionTimeoutMinutes: null + setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.json new file mode 100644 index 0000000000..d010da0a5b --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.json @@ -0,0 +1,70 @@ +{ + "description": "Pre-4.2 NotWritablePrimary error", + "uri": "mongodb://a/?replicaSet=rs", + "phases": [ + { + "description": "Primary A is discovered", + "responses": [ + [ + "a:27017", + { + "ok": 1, + "helloOk": true, + "isWritablePrimary": true, + "hosts": [ + "a:27017" + ], + "setName": "rs", + "minWireVersion": 0, + "maxWireVersion": 7 + } + ] + ], + "outcome": { + "servers": { + "a:27017": { + "type": "RSPrimary", + "setName": "rs", + "topologyVersion": null, + "pool": { + "generation": 0 + } + } + }, + "topologyType": "ReplicaSetWithPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + }, + { + "description": "Pre-4.2 NotWritablePrimary error marks server Unknown and clears the pool", + "applicationErrors": [ + { + "address": "a:27017", + "when": "afterHandshakeCompletes", + "maxWireVersion": 7, + "type": "command", + "response": { + "ok": 0, + "errmsg": "NotWritablePrimary", + "code": 10107 + } + } + ], + "outcome": { + "servers": { + "a:27017": { + "type": "Unknown", + "topologyVersion": null, + "pool": { + "generation": 1 + } + } + }, + "topologyType": "ReplicaSetNoPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + } + ] +} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.yml new file mode 100644 index 0000000000..29669ff336 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-NotWritablePrimary.yml @@ -0,0 +1,47 @@ +# Autogenerated tests for SDAM error handling, see generate-error-tests.py +description: Pre-4.2 NotWritablePrimary error +uri: mongodb://a/?replicaSet=rs +phases: +- description: Primary A is discovered + responses: + - - a:27017 + - ok: 1 + helloOk: true + isWritablePrimary: true + hosts: + - a:27017 + setName: rs + minWireVersion: 0 + maxWireVersion: 7 + outcome: &outcome + servers: + a:27017: + type: RSPrimary + setName: rs + topologyVersion: null + pool: + generation: 0 + topologyType: ReplicaSetWithPrimary + logicalSessionTimeoutMinutes: null + setName: rs + +- description: Pre-4.2 NotWritablePrimary error marks server Unknown and clears the pool + applicationErrors: + - address: a:27017 + when: afterHandshakeCompletes + maxWireVersion: 7 + type: command + response: + ok: 0 + errmsg: NotWritablePrimary + code: 10107 + outcome: + servers: + a:27017: + type: Unknown + topologyVersion: null + pool: + generation: 1 + topologyType: ReplicaSetNoPrimary + logicalSessionTimeoutMinutes: null + setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.json new file mode 100644 index 0000000000..02956d201d --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.json @@ -0,0 +1,70 @@ +{ + "description": "Pre-4.2 PrimarySteppedDown error", + "uri": "mongodb://a/?replicaSet=rs", + "phases": [ + { + "description": "Primary A is discovered", + "responses": [ + [ + "a:27017", + { + "ok": 1, + "helloOk": true, + "isWritablePrimary": true, + "hosts": [ + "a:27017" + ], + "setName": "rs", + "minWireVersion": 0, + "maxWireVersion": 7 + } + ] + ], + "outcome": { + "servers": { + "a:27017": { + "type": "RSPrimary", + "setName": "rs", + "topologyVersion": null, + "pool": { + "generation": 0 + } + } + }, + "topologyType": "ReplicaSetWithPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + }, + { + "description": "Pre-4.2 PrimarySteppedDown error marks server Unknown and clears the pool", + "applicationErrors": [ + { + "address": "a:27017", + "when": "afterHandshakeCompletes", + "maxWireVersion": 7, + "type": "command", + "response": { + "ok": 0, + "errmsg": "PrimarySteppedDown", + "code": 189 + } + } + ], + "outcome": { + "servers": { + "a:27017": { + "type": "Unknown", + "topologyVersion": null, + "pool": { + "generation": 1 + } + } + }, + "topologyType": "ReplicaSetNoPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + } + ] +} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.yml new file mode 100644 index 0000000000..9176ee25c3 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-PrimarySteppedDown.yml @@ -0,0 +1,47 @@ +# Autogenerated tests for SDAM error handling, see generate-error-tests.py +description: Pre-4.2 PrimarySteppedDown error +uri: mongodb://a/?replicaSet=rs +phases: +- description: Primary A is discovered + responses: + - - a:27017 + - ok: 1 + helloOk: true + isWritablePrimary: true + hosts: + - a:27017 + setName: rs + minWireVersion: 0 + maxWireVersion: 7 + outcome: &outcome + servers: + a:27017: + type: RSPrimary + setName: rs + topologyVersion: null + pool: + generation: 0 + topologyType: ReplicaSetWithPrimary + logicalSessionTimeoutMinutes: null + setName: rs + +- description: Pre-4.2 PrimarySteppedDown error marks server Unknown and clears the pool + applicationErrors: + - address: a:27017 + when: afterHandshakeCompletes + maxWireVersion: 7 + type: command + response: + ok: 0 + errmsg: PrimarySteppedDown + code: 189 + outcome: + servers: + a:27017: + type: Unknown + topologyVersion: null + pool: + generation: 1 + topologyType: ReplicaSetNoPrimary + logicalSessionTimeoutMinutes: null + setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.json b/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.json new file mode 100644 index 0000000000..fc3a5aa6fe --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.json @@ -0,0 +1,70 @@ +{ + "description": "Pre-4.2 ShutdownInProgress error", + "uri": "mongodb://a/?replicaSet=rs", + "phases": [ + { + "description": "Primary A is discovered", + "responses": [ + [ + "a:27017", + { + "ok": 1, + "helloOk": true, + "isWritablePrimary": true, + "hosts": [ + "a:27017" + ], + "setName": "rs", + "minWireVersion": 0, + "maxWireVersion": 7 + } + ] + ], + "outcome": { + "servers": { + "a:27017": { + "type": "RSPrimary", + "setName": "rs", + "topologyVersion": null, + "pool": { + "generation": 0 + } + } + }, + "topologyType": "ReplicaSetWithPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + }, + { + "description": "Pre-4.2 ShutdownInProgress error marks server Unknown and clears the pool", + "applicationErrors": [ + { + "address": "a:27017", + "when": "afterHandshakeCompletes", + "maxWireVersion": 7, + "type": "command", + "response": { + "ok": 0, + "errmsg": "ShutdownInProgress", + "code": 91 + } + } + ], + "outcome": { + "servers": { + "a:27017": { + "type": "Unknown", + "topologyVersion": null, + "pool": { + "generation": 1 + } + } + }, + "topologyType": "ReplicaSetNoPrimary", + "logicalSessionTimeoutMinutes": null, + "setName": "rs" + } + } + ] +} diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.yml b/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.yml new file mode 100644 index 0000000000..5c64050e59 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42-ShutdownInProgress.yml @@ -0,0 +1,47 @@ +# Autogenerated tests for SDAM error handling, see generate-error-tests.py +description: Pre-4.2 ShutdownInProgress error +uri: mongodb://a/?replicaSet=rs +phases: +- description: Primary A is discovered + responses: + - - a:27017 + - ok: 1 + helloOk: true + isWritablePrimary: true + hosts: + - a:27017 + setName: rs + minWireVersion: 0 + maxWireVersion: 7 + outcome: &outcome + servers: + a:27017: + type: RSPrimary + setName: rs + topologyVersion: null + pool: + generation: 0 + topologyType: ReplicaSetWithPrimary + logicalSessionTimeoutMinutes: null + setName: rs + +- description: Pre-4.2 ShutdownInProgress error marks server Unknown and clears the pool + applicationErrors: + - address: a:27017 + when: afterHandshakeCompletes + maxWireVersion: 7 + type: command + response: + ok: 0 + errmsg: ShutdownInProgress + code: 91 + outcome: + servers: + a:27017: + type: Unknown + topologyVersion: null + pool: + generation: 1 + topologyType: ReplicaSetNoPrimary + logicalSessionTimeoutMinutes: null + setName: rs diff --git a/source/server-discovery-and-monitoring/tests/errors/pre-42.yml.template b/source/server-discovery-and-monitoring/tests/errors/pre-42.yml.template new file mode 100644 index 0000000000..7449f68c16 --- /dev/null +++ b/source/server-discovery-and-monitoring/tests/errors/pre-42.yml.template @@ -0,0 +1,47 @@ +# Autogenerated tests for SDAM error handling, see generate-error-tests.py +description: Pre-4.2 {error_name} error +uri: mongodb://a/?replicaSet=rs +phases: +- description: Primary A is discovered + responses: + - - a:27017 + - ok: 1 + helloOk: true + isWritablePrimary: true + hosts: + - a:27017 + setName: rs + minWireVersion: 0 + maxWireVersion: 7 + outcome: &outcome + servers: + a:27017: + type: RSPrimary + setName: rs + topologyVersion: null + pool: + generation: 0 + topologyType: ReplicaSetWithPrimary + logicalSessionTimeoutMinutes: null + setName: rs + +- description: Pre-4.2 {error_name} error marks server Unknown and clears the pool + applicationErrors: + - address: a:27017 + when: afterHandshakeCompletes + maxWireVersion: 7 + type: command + response: + ok: 0 + errmsg: {error_name} + code: {error_code} + outcome: + servers: + a:27017: + type: Unknown + topologyVersion: null + pool: + generation: 1 + topologyType: ReplicaSetNoPrimary + logicalSessionTimeoutMinutes: null + setName: rs