summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Edin <henrik.edin@mongodb.com>2020-05-26 11:05:39 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-06-05 17:27:44 +0000
commit959584ed0ea88a74fe49458f9018a97b10b23cc0 (patch)
tree5583981b4a9e54ee96c808b99aa195a494f23d58
parentc7952d0ea20482e165b12afd71639949f4a24d8e (diff)
downloadmongo-959584ed0ea88a74fe49458f9018a97b10b23cc0.tar.gz
SERVER-48355 Log cleanup
(cherry picked from commit 97e84ae903ecae9ec1d8ba553188d64d080bcd99)
-rw-r--r--src/mongo/db/index_builds_coordinator.cpp73
-rw-r--r--src/mongo/db/storage/storage_engine_impl.cpp2
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp1
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);