[SERVER-29174] Make direct writes against the config primary from a JS test throw in the continuous stepdown suite Created: 12/May/17  Updated: 04/Apr/23  Resolved: 04/Apr/23

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Dianna Hohensee (Inactive) Assignee: [DO NOT USE] Backlog - Sharding EMEA
Resolution: Won't Do Votes: 0
Labels: AdiZ
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-28351 blacklist move_stale_mongos.js and sp... Closed
Assigned Teams:
Sharding EMEA
Participants:

 Description   

Courtesy of max.hirschhorn,

diff --git a/jstests/libs/override_methods/sharding_continuous_config_stepdown.js b/jstests/libs/override_methods/sharding_continuous_config_stepdown.js
index 638dc8b..7d3039e 100644
--- a/jstests/libs/override_methods/sharding_continuous_config_stepdown.js
+++ b/jstests/libs/override_methods/sharding_continuous_config_stepdown.js
@@ -251,6 +251,29 @@ tracking: {verbosity: 0} }";
 
         // Start the continuous config server stepdown thread
         this.configRS.startContinuousFailover();
+
+        // We override the functions on Mongo.prototype that send data over the wire to prevent a
+        // test from running a command directly against the config servers and causing a spurious
+        // network error if it coincided with a stepdown.
+        this.configRS.nodes.forEach(function overrideConnectionMethods(node) {
+            var methodsToOverride = [
+                "find",
+                "insert",
+                "remove",
+                "runCommand",
+                "runCommandWithMetadata",
+                "update",
+            ];
+
+            methodsToOverride.forEach(function overrideMethod(name) {
+                node[name] = function throwError() {
+                    throw new Error(
+                        "Cowardly refusing to talk directly to the config servers while running" +
+                        " with the sharding_continuous_config_stepdown.js override enabled since" +
+                        " it may lead to a spurious network error.");
+                };
+            });
+        });
     };
 
     Object.extend(ShardingTest, originalShardingTest);

This would catch future JS test additions that can lead to BFs – these operations directly against the config primary, rather than via the mongos, are currently not retriable.


Generated at Thu Feb 08 04:20:06 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.