summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSviatlana Zuiko <sviatlana.zuiko@mongodb.com>2022-08-22 16:05:27 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-08-22 16:37:30 +0000
commit85abdf5bfe7ed2f827db66627614a3fb6c7adc64 (patch)
tree44e78c7578711ae6e0804408961d435d1b567825
parentb324e20468ca7d2c3afd3cfa57f1ba38c77a3655 (diff)
downloadmongo-85abdf5bfe7ed2f827db66627614a3fb6c7adc64.tar.gz
Revert "SERVER-67443 added logging for fcv up/downgrade in set_feature_compatibility_version_command.cpp && created set_fcv_logging.js"
This reverts commit bcebd12f2e6492eef7f609d8b234f81e92c2f683.
-rw-r--r--jstests/sharding/set_fcv_logging.js208
-rw-r--r--src/mongo/db/commands/set_feature_compatibility_version_command.cpp31
2 files changed, 1 insertions, 238 deletions
diff --git a/jstests/sharding/set_fcv_logging.js b/jstests/sharding/set_fcv_logging.js
deleted file mode 100644
index 4d5b9c160ac..00000000000
--- a/jstests/sharding/set_fcv_logging.js
+++ /dev/null
@@ -1,208 +0,0 @@
-/**
- * Tests for logging during FCV upgrade/downgrade.
- * Three logs are involved:
- * FCV upgrade or downgrade called (6744300)
- * FCV is upgrading or downgrading (6744301)
- * FCV upgrade or downgrade success (6744302).
- *
- * @tags: [multiversion_incompatible]
- */
-
-(function() {
-"use strict";
-
-load("jstests/libs/fail_point_util.js");
-
-const latest = "latest";
-const SetFCVStatus = Object.freeze({called: 1, transitioning: 2, successful: 3});
-
-/**
- * Helper function to assert logging information including FCV status and server type.
- */
-function assertLogs(status, upgradeOrDowngrade, serverType, numShardServers) {
- if (status >= SetFCVStatus.called) {
- assert.soon(() => rawMongoProgramOutput().match(/\"id\":6744300/),
- '"FCV ' + upgradeOrDowngrade + ' called" log not found');
- } else {
- assert(rawMongoProgramOutput().match(/\"id\":6744300/) == null,
- 'should not log but "FCV ' + upgradeOrDowngrade + ' called" log found');
- }
- if (status >= SetFCVStatus.transitioning) {
- assert.soon(() => rawMongoProgramOutput().match(/\"id\":6744301/),
- '"FCV ' + upgradeOrDowngrade + ' in progress" log not found');
- } else {
- assert(rawMongoProgramOutput().match(/\"id\":6744301/) == null,
- 'should not log but "FCV ' + upgradeOrDowngrade + ' in progress" log found');
- }
- if (status >= SetFCVStatus.successful) {
- assert.soon(() => rawMongoProgramOutput().match(/\"id\":6744302/),
- '"FCV ' + upgradeOrDowngrade + ' success" log not found');
- } else {
- assert(rawMongoProgramOutput().match(/\"id\":6744302/) == null,
- 'should not log but "FCV ' + upgradeOrDowngrade + ' success" log found');
- }
-
- if (serverType === "replica set/standalone") {
- assert.soon(
- () =>
- rawMongoProgramOutput().match(/\"serverType\":"replica set\/standalone"/g).length ==
- status,
- "should have " + status + " log(s) with serverType: replica set/standalone");
- } else if (serverType === "shardedCluster") {
- assert.soon(
- () => rawMongoProgramOutput().match(/\"serverType\":"config server"/g).length == status,
- "should have " + status + " log(s) with serverType: config server");
- // If the FCV change failed before the config server reached the transitioning state,
- // there should not be any logs containing 'shard server'.
- if (status >= SetFCVStatus.transitioning) {
- assert.soon(
- () => rawMongoProgramOutput().match(/\"serverType\":"shard server"/g).length ==
- numShardServers * status,
- "should have " + numShardServers * status +
- " log(s) with serverType: shard server");
- } else {
- assert(rawMongoProgramOutput().match(/\"serverType\":"shard server"/g) == null,
- 'should not have log containing shard server');
- }
- }
- clearRawMongoProgramOutput(); // Clears output for next logging.
-}
-
-/**
- * Test the correct logs are logged using failpoints:
- *
- * failBeforeTransitioning - set after FCV change is called and before setTargetVersion is set to
- * true, therefore should only log 6744300 (called).
- *
- * failDowngrading/failUpgrading - set after setTargetVersion is true, inside the
- * _runDowngrade/_runUpgrade function, therefore should only log 6744300 (called),
- * 6744301 (transitioning).
- *
- * Each server type is tested with upgrade and downgrade with the two mentioned failpoints on/off.
- */
-function assertLogsWithFailpoints(conn, adminDB, serverType, numShardServers) {
- clearRawMongoProgramOutput(); // Clears output for next logging.
-
- /* 1. Testing logging for downgrade */
-
- // 1.1. Test that setFCV (downgrade) fails before moving to the transitional FCV:
- // should have log 6744300 (called), but not 6744301 (transitioning) or 6744302 (successful).
- jsTest.log("Case 1.1. Logs should show that downgrade has only reached 'called' stage.");
- assert.commandWorked(
- conn.adminCommand({configureFailPoint: 'failBeforeTransitioning', mode: "alwaysOn"}));
- assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV}));
- assertLogs(SetFCVStatus.called, "downgrade", serverType, numShardServers);
- assert.commandWorked(
- conn.adminCommand({configureFailPoint: 'failBeforeTransitioning', mode: "off"}));
-
- // 1.2. Test that setFCV (downgrade) fails before finishing downgrading:
- // should have log 6744300 (called), 6744301 (transitioning), but not 6744302 (successful).
- jsTest.log("Case 1.2. Logs should show that downgrade has only reached 'downgrading' stage.");
- assert.commandWorked(
- conn.adminCommand({configureFailPoint: 'failDowngrading', mode: "alwaysOn"}));
- assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV}));
- assertLogs(SetFCVStatus.transitioning, "downgrade", serverType, numShardServers);
- assert.commandWorked(conn.adminCommand({configureFailPoint: 'failDowngrading', mode: "off"}));
-
- // 1.3. Test that setFCV (downgrade) succeeds:
- // should have all three logs 6744300 (called), 6744301 (transitioning), 6744302 (successful).
- jsTest.log("Case 1.3. Logs should show that downgrade has reached 'downgraded' stage.");
- assert.commandWorked(adminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV}));
- assertLogs(SetFCVStatus.successful, "downgrade", serverType, numShardServers);
-
- /* 2. Testing logging for upgrade */
-
- // 2.1. Test that setFCV (upgrade) fails before moving to the transitional FCV:
- // should have log 6744300 (called), but not 6744301 (transitioning) or 6744302 (successful).
- jsTest.log("Case 2.1. Logs should show that upgrade has only reached 'called' stage.");
- assert.commandWorked(
- conn.adminCommand({configureFailPoint: 'failBeforeTransitioning', mode: "alwaysOn"}));
- assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: latestFCV}));
- assertLogs(SetFCVStatus.called, "upgrade", serverType, numShardServers);
- assert.commandWorked(
- conn.adminCommand({configureFailPoint: 'failBeforeTransitioning', mode: "off"}));
-
- // 2.2. Test that setFCV (upgrade) fails before finishing upgrading:
- // should have log 6744300 (called), 6744301 (transitioning), but not 6744302 (successful).
- jsTest.log("Case 2.2. Logs should show that upgrade has only reached 'upgrading' stage.");
- assert.commandWorked(
- conn.adminCommand({configureFailPoint: 'failUpgrading', mode: "alwaysOn"}));
- assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: latestFCV}));
- assertLogs(SetFCVStatus.transitioning, "upgrade", serverType, numShardServers);
- assert.commandWorked(conn.adminCommand({configureFailPoint: 'failUpgrading', mode: "off"}));
-
- // 2.3. Test that setFCV (upgrade) succeeds:
- // should have all three logs 6744300 (called), 6744301 (transitioning), 6744302 (successful).
- jsTest.log("Case 2.3. Logs should show that upgrade has reached 'upgraded' stage.");
- assert.commandWorked(adminDB.runCommand({setFeatureCompatibilityVersion: latestFCV}));
- assertLogs(SetFCVStatus.successful, "upgrade", serverType, numShardServers);
-
- // 2.4. Shouldn't log anything because we have already upgraded to latestFCV.
- jsTest.log(
- "Case 2.4. Logs should not contain fcv upgrade because it is already in upgraded state.");
- assert.commandWorked(adminDB.runCommand({setFeatureCompatibilityVersion: latestFCV}));
- // Ensure none of the logs have been output.
- assertLogs(
- 0 /* status: no fcv change */, "upgrade", 0 /* serverType */, 0 /* numShardServers */);
-}
-
-function runStandaloneTest() {
- // A 'latest' binary standalone should default to 'latestFCV'.
- const conn = MongoRunner.runMongod({binVersion: latest});
- assert.neq(
- null, conn, "mongod was unable to start up with version=" + latest + " and no data files");
- const adminDB = conn.getDB("admin");
- checkFCV(adminDB, latestFCV);
-
- jsTest.log("Checking for correct FCV logging on a standalone.");
- assertLogsWithFailpoints(conn, adminDB, "replica set/standalone", 0 /*numShardServers*/);
-
- MongoRunner.stopMongod(conn);
-}
-
-function runReplicaSetTest() {
- const rst = new ReplSetTest({nodes: 2, nodeOpts: {binVersion: latest}});
- rst.startSet();
- rst.initiate();
- const primary = rst.getPrimary();
- const primaryAdminDB = primary.getDB("admin");
- checkFCV(primaryAdminDB, latestFCV);
-
- jsTest.log("Checking for correct FCV logging on a replica set.");
- assertLogsWithFailpoints(
- primary, primaryAdminDB, "replica set/standalone", 0 /*numShardServers*/);
-
- rst.stopSet();
-}
-
-function runShardingTest() {
- const st = new ShardingTest({
- mongos: 1,
- config: 1,
- shards: 2,
- other: {
- mongosOptions: {binVersion: latest},
- configOptions: {binVersion: latest},
- rsOptions: {
- binVersion: latest,
- },
- rs: {nodes: 2}
- }
- });
- const mongosAdminDB = st.s.getDB("admin");
- const configPrimaryAdminDB = st.configRS.getPrimary().getDB("admin");
- const shardPrimaryAdminDB = st.rs0.getPrimary().getDB("admin");
- checkFCV(configPrimaryAdminDB, latestFCV);
- checkFCV(shardPrimaryAdminDB, latestFCV);
-
- jsTest.log("Checking for correct FCV logging on a sharded cluster.");
- assertLogsWithFailpoints(
- st.configRS.getPrimary(), mongosAdminDB, "shardedCluster", 2 /*numShardServers*/);
-
- st.stop();
-}
-
-runStandaloneTest();
-runReplicaSetTest();
-runShardingTest();
-})();
diff --git a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
index d548b8b446d..6ce53c6258b 100644
--- a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
+++ b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp
@@ -317,20 +317,6 @@ public:
return true;
}
- const auto upgradeOrDowngrade = requestedVersion > actualVersion ? "upgrade" : "downgrade";
- const auto server_type = serverGlobalParams.clusterRole == ClusterRole::ConfigServer
- ? "config server"
- : (request.getPhase() ? "shard server" : "replica set/standalone");
-
- if (!request.getPhase() || request.getPhase() == SetFCVPhaseEnum::kStart) {
- LOGV2(6744300,
- "setFeatureCompatibilityVersion command called",
- "upgradeOrDowngrade"_attr = upgradeOrDowngrade,
- "serverType"_attr = server_type,
- "fromVersion"_attr = actualVersion,
- "toVersion"_attr = requestedVersion);
- }
-
const boost::optional<Timestamp> changeTimestamp = getChangeTimestamp(opCtx, request);
FeatureCompatibilityVersion::validateSetFeatureCompatibilityVersionRequest(
@@ -350,8 +336,7 @@ public:
FeatureCompatibilityVersion::enterFCVChangeRegion(opCtx));
uassert(ErrorCodes::Error(6744303),
- "Failing setFeatureCompatibilityVersion before reaching the FCV "
- "transitional stage due to 'failBeforeTransitioning' failpoint set",
+ "Failing upgrade due to 'failBeforeTransitioning' failpoint set",
!failBeforeTransitioning.shouldFail());
FeatureCompatibilityVersion::updateFeatureCompatibilityVersionDocument(
@@ -361,13 +346,6 @@ public:
isFromConfigServer,
changeTimestamp,
true /* setTargetVersion */);
-
- LOGV2(6744301,
- "setFeatureCompatibilityVersion has set the FCV to the transitional state",
- "upgradeOrDowngrade"_attr = upgradeOrDowngrade,
- "serverType"_attr = server_type,
- "fromVersion"_attr = actualVersion,
- "toVersion"_attr = requestedVersion);
}
if (request.getPhase() == SetFCVPhaseEnum::kStart) {
@@ -436,13 +414,6 @@ public:
false /* setTargetVersion */);
}
- LOGV2(6744302,
- "setFeatureCompatibilityVersion succeeded",
- "upgradeOrDowngrade"_attr = upgradeOrDowngrade,
- "serverType"_attr = server_type,
- "fromVersion"_attr = actualVersion,
- "toVersion"_attr = requestedVersion);
-
return true;
}