diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2020-05-26 11:05:39 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-06-05 17:27:44 +0000 |
commit | 959584ed0ea88a74fe49458f9018a97b10b23cc0 (patch) | |
tree | 5583981b4a9e54ee96c808b99aa195a494f23d58 | |
parent | c7952d0ea20482e165b12afd71639949f4a24d8e (diff) | |
download | mongo-959584ed0ea88a74fe49458f9018a97b10b23cc0.tar.gz |
SERVER-48355 Log cleanup
(cherry picked from commit 97e84ae903ecae9ec1d8ba553188d64d080bcd99)
-rw-r--r-- | src/mongo/db/index_builds_coordinator.cpp | 73 | ||||
-rw-r--r-- | src/mongo/db/storage/storage_engine_impl.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp | 1 |
3 files changed, 41 insertions, 35 deletions
diff --git a/src/mongo/db/index_builds_coordinator.cpp b/src/mongo/db/index_builds_coordinator.cpp index fd40604bc53..7adc6ac77b8 100644 --- a/src/mongo/db/index_builds_coordinator.cpp +++ b/src/mongo/db/index_builds_coordinator.cpp @@ -285,34 +285,40 @@ void logFailure(Status status, */ void forEachIndexBuild( const std::vector<std::shared_ptr<ReplIndexBuildState>>& indexBuilds, - StringData logPrefix, + StringData context, std::function<void(std::shared_ptr<ReplIndexBuildState> replState)> onIndexBuild) { if (indexBuilds.empty()) { return; } + auto indexBuildLogger = [](const auto& indexBuild) { + BSONObjBuilder builder; + builder.append("buildUUID"_sd, indexBuild->buildUUID.toBSON()); + builder.append("collectionUUID"_sd, indexBuild->collectionUUID.toBSON()); + + BSONArrayBuilder names; + for (const auto& indexName : indexBuild->indexNames) { + names.append(indexName); + } + builder.append("indexNames"_sd, names.arr()); + builder.append("protocol"_sd, + indexBuild->protocol == IndexBuildProtocol::kTwoPhase ? "two phase"_sd + : "single phase"_sd); + + return builder.obj(); + }; + auto begin = boost::make_transform_iterator(indexBuilds.begin(), indexBuildLogger); + auto end = boost::make_transform_iterator(indexBuilds.end(), indexBuildLogger); + LOGV2(20650, - "{logPrefix}active index builds: {indexBuilds_size}", - "logPrefix"_attr = logPrefix, - "indexBuilds_size"_attr = indexBuilds.size()); - - for (auto replState : indexBuilds) { - std::string indexNamesStr; - str::joinStringDelim(replState->indexNames, &indexNamesStr, ','); - LOGV2(20651, - "{logPrefix}{replState_buildUUID}: collection: {replState_collectionUUID}; indexes: " - "{replState_indexNames_size} [{indexNamesStr}]; method: " - "{IndexBuildProtocol_kTwoPhase_replState_protocol_two_phase_single_phase}", - "logPrefix"_attr = logPrefix, - "replState_buildUUID"_attr = replState->buildUUID, - "replState_collectionUUID"_attr = replState->collectionUUID, - "replState_indexNames_size"_attr = replState->indexNames.size(), - "indexNamesStr"_attr = indexNamesStr, - "IndexBuildProtocol_kTwoPhase_replState_protocol_two_phase_single_phase"_attr = - (IndexBuildProtocol::kTwoPhase == replState->protocol ? "two phase" - : "single phase")); - - onIndexBuild(replState); + "Active index builds", + "context"_attr = context, + "builds"_attr = logv2::seqLog(begin, end)); + + if (onIndexBuild) { + for (const auto& indexBuild : indexBuilds) { + onIndexBuild(indexBuild); + } } } @@ -822,7 +828,7 @@ boost::optional<UUID> IndexBuildsCoordinator::abortIndexBuildByIndexNames( std::string reason) { boost::optional<UUID> buildUUID; auto indexBuilds = _getIndexBuilds(); - auto onIndexBuild = [&](std::shared_ptr<ReplIndexBuildState> replState) { + auto onIndexBuild = [&](const std::shared_ptr<ReplIndexBuildState>& replState) { if (replState->collectionUUID != collectionUUID) { return; } @@ -849,7 +855,7 @@ boost::optional<UUID> IndexBuildsCoordinator::abortIndexBuildByIndexNames( } }; forEachIndexBuild( - indexBuilds, "IndexBuildsCoordinator::abortIndexBuildByIndexNames - "_sd, onIndexBuild); + indexBuilds, "IndexBuildsCoordinator::abortIndexBuildByIndexNames"_sd, onIndexBuild); return buildUUID; } @@ -859,7 +865,7 @@ bool IndexBuildsCoordinator::hasIndexBuilder(OperationContext* opCtx, bool foundIndexBuilder = false; boost::optional<UUID> buildUUID; auto indexBuilds = _getIndexBuilds(); - auto onIndexBuild = [&](std::shared_ptr<ReplIndexBuildState> replState) { + auto onIndexBuild = [&](const std::shared_ptr<ReplIndexBuildState>& replState) { if (replState->collectionUUID != collectionUUID) { return; } @@ -874,7 +880,7 @@ bool IndexBuildsCoordinator::hasIndexBuilder(OperationContext* opCtx, foundIndexBuilder = true; }; - forEachIndexBuild(indexBuilds, "IndexBuildsCoordinator::hasIndexBuilder - "_sd, onIndexBuild); + forEachIndexBuild(indexBuilds, "IndexBuildsCoordinator::hasIndexBuilder"_sd, onIndexBuild); return foundIndexBuilder; } @@ -1063,7 +1069,7 @@ bool IndexBuildsCoordinator::abortIndexBuildByBuildUUID(OperationContext* opCtx, 4656011, "Failed to abort index build after partially tearing-down index build state", "buildUUID"_attr = replState->buildUUID, - "reason"_attr = e.toString()); + "error"_attr = e); } // Wait for the builder thread to receive the signal before unregistering. Don't release the @@ -1221,8 +1227,7 @@ std::size_t IndexBuildsCoordinator::getActiveIndexBuildCount(OperationContext* o auto indexBuilds = _getIndexBuilds(); // We use forEachIndexBuild() to log basic details on the current index builds and don't intend // to modify any of the index builds, hence the no-op. - auto onIndexBuild = [](std::shared_ptr<ReplIndexBuildState> replState) {}; - forEachIndexBuild(indexBuilds, "index build still running: "_sd, onIndexBuild); + forEachIndexBuild(indexBuilds, "IndexBuildsCoordinator::getActiveIndexBuildCount"_sd, nullptr); return indexBuilds.size(); } @@ -1235,7 +1240,7 @@ void IndexBuildsCoordinator::onStepUp(OperationContext* opCtx) { indexbuildentryhelpers::ensureIndexBuildEntriesNamespaceExists(opCtx); auto indexBuilds = _getIndexBuilds(); - auto onIndexBuild = [this, opCtx](std::shared_ptr<ReplIndexBuildState> replState) { + auto onIndexBuild = [this, opCtx](const std::shared_ptr<ReplIndexBuildState>& replState) { if (IndexBuildProtocol::kTwoPhase != replState->protocol) { return; } @@ -1249,7 +1254,7 @@ void IndexBuildsCoordinator::onStepUp(OperationContext* opCtx) { } } }; - forEachIndexBuild(indexBuilds, "IndexBuildsCoordinator::onStepUp - "_sd, onIndexBuild); + forEachIndexBuild(indexBuilds, "IndexBuildsCoordinator::onStepUp"_sd, onIndexBuild); } IndexBuilds IndexBuildsCoordinator::stopIndexBuildsForRollback(OperationContext* opCtx) { @@ -1258,7 +1263,7 @@ IndexBuilds IndexBuildsCoordinator::stopIndexBuildsForRollback(OperationContext* IndexBuilds buildsStopped; auto indexBuilds = _getIndexBuilds(); - auto onIndexBuild = [&](std::shared_ptr<ReplIndexBuildState> replState) { + auto onIndexBuild = [&](const std::shared_ptr<ReplIndexBuildState>& replState) { if (IndexBuildProtocol::kSinglePhase == replState->protocol) { LOGV2(20659, "Not stopping single phase index build", @@ -1283,7 +1288,7 @@ IndexBuilds IndexBuildsCoordinator::stopIndexBuildsForRollback(OperationContext* opCtx, replState->buildUUID, IndexBuildAction::kRollbackAbort, reason); }; forEachIndexBuild( - indexBuilds, "IndexBuildsCoordinator::stopIndexBuildsForRollback - "_sd, onIndexBuild); + indexBuilds, "IndexBuildsCoordinator::stopIndexBuildsForRollback"_sd, onIndexBuild); return buildsStopped; } @@ -2335,7 +2340,7 @@ IndexBuildsCoordinator::CommitResult IndexBuildsCoordinator::_insertKeysFromSide "buildUUID"_attr = replState->buildUUID, "collectionUUID"_attr = replState->collectionUUID, "db"_attr = replState->dbName, - "reason"_attr = status); + "error"_attr = status); } // This index build failed due to an indexing error in normal circumstances. Abort while diff --git a/src/mongo/db/storage/storage_engine_impl.cpp b/src/mongo/db/storage/storage_engine_impl.cpp index 13e53b9240e..01f26724759 100644 --- a/src/mongo/db/storage/storage_engine_impl.cpp +++ b/src/mongo/db/storage/storage_engine_impl.cpp @@ -1047,7 +1047,7 @@ void StorageEngineImpl::TimestampMonitor::startup() { // killed, it's fine to give up on future notifications. LOGV2(22263, "Timestamp monitor is stopping. {reason}", - "Timestamp monitor is stopping" + "Timestamp monitor is stopping", "error"_attr = ex.reason()); return; } diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp index 1ab76666c8f..bcc002700d1 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp @@ -2263,6 +2263,7 @@ StatusWith<Timestamp> WiredTigerKVEngine::recoverToStableTimestamp(OperationCont 0, "Rolling back to the stable timestamp. StableTimestamp: {stableTimestamp} " "Initial Data Timestamp: {initialDataTimestamp}", + "Rolling back to the stable timestamp", "stableTimestamp"_attr = stableTimestamp, "initialDataTimestamp"_attr = initialDataTimestamp); int ret = _conn->rollback_to_stable(_conn, nullptr); |