diff options
author | Billy Donahue <billy.donahue@mongodb.com> | 2022-04-05 16:56:19 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-04-05 18:42:51 +0000 |
commit | f2558a0fcc9bfa1c3013b3ae87e45973e5f28a69 (patch) | |
tree | 512b36fdd4ec93c6cf276e65779338362bd7d8b7 | |
parent | eb50fa0cfae6785aa9748965d51fbf25314bee0c (diff) | |
download | mongo-f2558a0fcc9bfa1c3013b3ae87e45973e5f28a69.tar.gz |
SERVER-65247 make set_param1.js resilient against concurrent FailPoint manipulation
-rw-r--r-- | jstests/core/set_param1.js | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/jstests/core/set_param1.js b/jstests/core/set_param1.js index e1d2c496343..3e4b85180a1 100644 --- a/jstests/core/set_param1.js +++ b/jstests/core/set_param1.js @@ -6,16 +6,23 @@ // Tests for accessing logLevel server parameter using getParameter/setParameter commands // and shell helpers. -old = db.adminCommand({"getParameter": "*"}); +function scrub(obj) { + delete obj["operationTime"]; + delete obj["$clusterTime"]; + // There are Failpoint manipulations in concurrent tasks in the jstest + // environment. So scrub the volatile "failpoint." parameters. + for (let key in obj) + if (key.startsWith("failpoint.")) + delete obj[key]; + return obj; +} + +old = scrub(assert.commandWorked(db.adminCommand({"getParameter": "*"}))); // the first time getParameter sends a request to with a shardingTaskExecutor and this sets an // operationTime. The following commands do not use shardingTaskExecutor. -delete old["operationTime"]; -delete old["$clusterTime"]; -tmp1 = db.adminCommand({"setParameter": 1, "logLevel": 5}); -tmp2 = db.adminCommand({"setParameter": 1, "logLevel": old.logLevel}); -now = db.adminCommand({"getParameter": "*"}); -delete now["operationTime"]; -delete now["$clusterTime"]; +tmp1 = assert.commandWorked(db.adminCommand({"setParameter": 1, "logLevel": 5})); +tmp2 = assert.commandWorked(db.adminCommand({"setParameter": 1, "logLevel": old.logLevel})); +now = scrub(assert.commandWorked(db.adminCommand({"getParameter": "*"}))); assert.eq(old, now, "A"); assert.eq(old.logLevel, tmp1.was, "B"); |