summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReo Kimura <reo.kimura@mongodb.com>2021-11-09 21:50:32 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-11-30 22:35:12 +0000
commit190c45ddd442812ed5f384002ba1d1c7722f3963 (patch)
treefc4874c91076e28465b3d61b206f9c3d4118861d
parent7d79c8838582833cf5251ea56fcc3881a72556b0 (diff)
downloadmongo-190c45ddd442812ed5f384002ba1d1c7722f3963.tar.gz
SERVER-58533 Log FCV at initialization and on log rotation
-rw-r--r--src/mongo/db/SConscript1
-rw-r--r--src/mongo/db/commands/feature_compatibility_version.cpp20
-rw-r--r--src/mongo/db/commands/feature_compatibility_version.h7
-rw-r--r--src/mongo/db/fcv_op_observer.cpp1
-rw-r--r--src/mongo/db/log_process_details.cpp10
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl.cpp6
6 files changed, 27 insertions, 18 deletions
diff --git a/src/mongo/db/SConscript b/src/mongo/db/SConscript
index 442bda2ad74..e2c119b9951 100644
--- a/src/mongo/db/SConscript
+++ b/src/mongo/db/SConscript
@@ -2007,6 +2007,7 @@ env.Library(
],
LIBDEPS=[
'$BUILD_DIR/mongo/base',
+ '$BUILD_DIR/mongo/db/commands/mongod_fcv',
'$BUILD_DIR/mongo/util/net/network',
'repl/repl_coordinator_interface',
'repl/replica_set_messages',
diff --git a/src/mongo/db/commands/feature_compatibility_version.cpp b/src/mongo/db/commands/feature_compatibility_version.cpp
index 7798cd2d2a6..78b2f6321af 100644
--- a/src/mongo/db/commands/feature_compatibility_version.cpp
+++ b/src/mongo/db/commands/feature_compatibility_version.cpp
@@ -421,7 +421,7 @@ void FeatureCompatibilityVersion::initializeForStartup(OperationContext* opCtx)
invariant(opCtx->lockState()->isW());
auto featureCompatibilityVersion = findFeatureCompatibilityVersionDocument(opCtx);
if (!featureCompatibilityVersion) {
- LOGV2(5853303, "featureCompatibilityVersion document missing at startup");
+ FeatureCompatibilityVersion::logFCVWithContext("startup"_sd);
return;
}
@@ -448,10 +448,7 @@ void FeatureCompatibilityVersion::initializeForStartup(OperationContext* opCtx)
serverGlobalParams.mutableFeatureCompatibility.setVersion(version);
FeatureCompatibilityVersion::updateMinWireVersion();
- LOGV2(5853300,
- "Intializing featureCompatibilityVersion at startup",
- "featureCompatibilityVersion"_attr =
- multiversion::toString(serverGlobalParams.featureCompatibility.getVersion()));
+ FeatureCompatibilityVersion::logFCVWithContext("startup"_sd);
// On startup, if the version is in an upgrading or downgrading state, print a warning.
if (serverGlobalParams.featureCompatibility.isUpgradingOrDowngrading()) {
@@ -520,6 +517,19 @@ void FeatureCompatibilityVersion::clearLastFCVUpdateTimestamp() {
lastFCVUpdateTimestamp = Timestamp();
}
+void FeatureCompatibilityVersion::logFCVWithContext(StringData context) {
+ LOGV2_OPTIONS(
+ 5853300,
+ {logv2::LogComponent::kReplication},
+ "current featureCompatibilityVersion value",
+ "featureCompatibilityVersion"_attr =
+ serverGlobalParams.featureCompatibility.isVersionInitialized()
+ ? multiversion::toString(serverGlobalParams.featureCompatibility.getVersion())
+ : multiversion::toString(
+ multiversion::FeatureCompatibilityVersion::kUnsetDefaultLastLTSBehavior),
+ "context"_attr = context);
+}
+
/**
* Read-only server parameter for featureCompatibilityVersion.
diff --git a/src/mongo/db/commands/feature_compatibility_version.h b/src/mongo/db/commands/feature_compatibility_version.h
index b6c5c537000..40764856f3a 100644
--- a/src/mongo/db/commands/feature_compatibility_version.h
+++ b/src/mongo/db/commands/feature_compatibility_version.h
@@ -124,6 +124,13 @@ public:
* Also used in rare cases when the replication coordinator majority snapshot is cleared.
*/
static void clearLastFCVUpdateTimestamp();
+
+ /**
+ * Logs the current FCV global state.
+ * context: the context in which this function was called, to differentiate logs (e.g.
+ * startup, log rotation).
+ */
+ static void logFCVWithContext(StringData context);
};
/**
diff --git a/src/mongo/db/fcv_op_observer.cpp b/src/mongo/db/fcv_op_observer.cpp
index 3a1ebd4195d..a08d45f37c6 100644
--- a/src/mongo/db/fcv_op_observer.cpp
+++ b/src/mongo/db/fcv_op_observer.cpp
@@ -65,6 +65,7 @@ void FcvOpObserver::_setVersion(OperationContext* opCtx,
prevVersion = serverGlobalParams.featureCompatibility.getVersion();
}
serverGlobalParams.mutableFeatureCompatibility.setVersion(newVersion);
+ FeatureCompatibilityVersion::logFCVWithContext("setFCV"_sd);
FeatureCompatibilityVersion::updateMinWireVersion();
// (Generic FCV reference): This FCV check should exist across LTS binary versions.
diff --git a/src/mongo/db/log_process_details.cpp b/src/mongo/db/log_process_details.cpp
index 16e70222266..687037ae4cc 100644
--- a/src/mongo/db/log_process_details.cpp
+++ b/src/mongo/db/log_process_details.cpp
@@ -38,6 +38,7 @@
#include "mongo/bson/bsonobj.h"
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/bson/json.h"
+#include "mongo/db/commands/feature_compatibility_version.h"
#include "mongo/db/repl/repl_set_config.h"
#include "mongo/db/repl/replication_coordinator.h"
#include "mongo/db/server_options.h"
@@ -103,14 +104,7 @@ void logProcessDetailsForLogRotate(ServiceContext* serviceContext) {
}
}
- LOGV2(5853301,
- "featureCompatibilityVersion on log rotation",
- "featureCompatibilityVersion"_attr =
- serverGlobalParams.featureCompatibility.isVersionInitialized()
- ? multiversion::toString(serverGlobalParams.featureCompatibility.getVersion())
- : multiversion::toString(
- multiversion::FeatureCompatibilityVersion::kUnsetDefaultLastLTSBehavior));
-
+ FeatureCompatibilityVersion::logFCVWithContext("log rotation"_sd);
logProcessDetails(nullptr);
}
diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp
index 4a7c66832d1..3384197b1a9 100644
--- a/src/mongo/db/repl/replication_coordinator_impl.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl.cpp
@@ -4417,11 +4417,7 @@ ReplicationCoordinatorImpl::_updateMemberStateFromTopologyCoordinator(WithLock l
// (Generic FCV reference): This FCV check should exist across LTS binary versions.
serverGlobalParams.mutableFeatureCompatibility.setVersion(
multiversion::GenericFCV::kLatest);
- LOGV2(5853302,
- "Update featureCompatibilityVersion because arbiters do not receive the replicated "
- "version",
- "featureCompatibilityVersion"_attr =
- multiversion::toString(serverGlobalParams.featureCompatibility.getVersion()));
+ FeatureCompatibilityVersion::logFCVWithContext("arbiter"_sd);
}
_memberState = newState;