diff options
author | Reo Kimura <reo.kimura@mongodb.com> | 2021-11-09 21:50:32 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-11-30 22:35:12 +0000 |
commit | 190c45ddd442812ed5f384002ba1d1c7722f3963 (patch) | |
tree | fc4874c91076e28465b3d61b206f9c3d4118861d /src/mongo | |
parent | 7d79c8838582833cf5251ea56fcc3881a72556b0 (diff) | |
download | mongo-190c45ddd442812ed5f384002ba1d1c7722f3963.tar.gz |
SERVER-58533 Log FCV at initialization and on log rotation
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/db/SConscript | 1 | ||||
-rw-r--r-- | src/mongo/db/commands/feature_compatibility_version.cpp | 20 | ||||
-rw-r--r-- | src/mongo/db/commands/feature_compatibility_version.h | 7 | ||||
-rw-r--r-- | src/mongo/db/fcv_op_observer.cpp | 1 | ||||
-rw-r--r-- | src/mongo/db/log_process_details.cpp | 10 | ||||
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl.cpp | 6 |
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; |