Skip to content

Commit

Permalink
SERVER-36479 Don't redact planSummary in logs
Browse files Browse the repository at this point in the history
(cherry picked from commit f19a83e)
  • Loading branch information
Schubes committed Aug 29, 2018
1 parent f49d487 commit 7c14a47
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 17 deletions.
2 changes: 1 addition & 1 deletion src/mongo/db/curop.cpp
Expand Up @@ -459,7 +459,7 @@ string OpDebug::report(Client* client,
}

if (!curop.getPlanSummary().empty()) {
s << " planSummary: " << redact(curop.getPlanSummary().toString());
s << " planSummary: " << curop.getPlanSummary().toString();
}

if (!updateobj.isEmpty()) {
Expand Down
10 changes: 5 additions & 5 deletions src/mongo/db/exec/cached_plan.cpp
Expand Up @@ -140,7 +140,7 @@ Status CachedPlanStage::pickBestPlan(PlanYieldPolicy* yieldPolicy) {

LOG(1) << "Execution of cached plan failed, falling back to replan."
<< " query: " << redact(_canonicalQuery->toStringShort())
<< " planSummary: " << redact(Explain::getPlanSummary(child().get()))
<< " planSummary: " << Explain::getPlanSummary(child().get())
<< " status: " << redact(statusObj);

const bool shouldCache = false;
Expand All @@ -151,7 +151,7 @@ Status CachedPlanStage::pickBestPlan(PlanYieldPolicy* yieldPolicy) {

LOG(1) << "Execution of cached plan failed: PlanStage died"
<< ", query: " << redact(_canonicalQuery->toStringShort())
<< " planSummary: " << redact(Explain::getPlanSummary(child().get()))
<< " planSummary: " << Explain::getPlanSummary(child().get())
<< " status: " << redact(statusObj);

return WorkingSetCommon::getMemberObjectStatus(statusObj);
Expand All @@ -166,7 +166,7 @@ Status CachedPlanStage::pickBestPlan(PlanYieldPolicy* yieldPolicy) {
<< " works, but was originally cached with only " << _decisionWorks
<< " works. Evicting cache entry and replanning query: "
<< redact(_canonicalQuery->toStringShort())
<< " plan summary before replan: " << redact(Explain::getPlanSummary(child().get()));
<< " plan summary before replan: " << Explain::getPlanSummary(child().get());

const bool shouldCache = true;
return replan(yieldPolicy, shouldCache);
Expand Down Expand Up @@ -241,7 +241,7 @@ Status CachedPlanStage::replan(PlanYieldPolicy* yieldPolicy, bool shouldCache) {
LOG(1)
<< "Replanning of query resulted in single query solution, which will not be cached. "
<< redact(_canonicalQuery->toStringShort())
<< " plan summary after replan: " << redact(Explain::getPlanSummary(child().get()))
<< " plan summary after replan: " << Explain::getPlanSummary(child().get())
<< " previous cache entry evicted: " << (shouldCache ? "yes" : "no");
return Status::OK();
}
Expand Down Expand Up @@ -274,7 +274,7 @@ Status CachedPlanStage::replan(PlanYieldPolicy* yieldPolicy, bool shouldCache) {
}

LOG(1) << "Replanning " << redact(_canonicalQuery->toStringShort())
<< " resulted in plan with summary: " << redact(Explain::getPlanSummary(child().get()))
<< " resulted in plan with summary: " << Explain::getPlanSummary(child().get())
<< ", which " << (shouldCache ? "has" : "has not") << " been written to the cache";
return Status::OK();
}
Expand Down
12 changes: 6 additions & 6 deletions src/mongo/db/exec/multi_plan.cpp
Expand Up @@ -239,7 +239,7 @@ Status MultiPlanStage::pickBestPlan(PlanYieldPolicy* yieldPolicy) {
const auto& bestSolution = bestCandidate.solution;

LOG(5) << "Winning solution:\n" << redact(bestSolution->toString());
LOG(2) << "Winning plan: " << redact(Explain::getPlanSummary(bestCandidate.root));
LOG(2) << "Winning plan: " << Explain::getPlanSummary(bestCandidate.root);

_backupPlanIdx = kNoSuchPlan;
if (bestSolution->hasBlockingStage && (0 == alreadyProduced.size())) {
Expand Down Expand Up @@ -276,10 +276,10 @@ Status MultiPlanStage::pickBestPlan(PlanYieldPolicy* yieldPolicy) {

LOG(1) << "Winning plan tied with runner-up. Not caching."
<< " ns: " << _collection->ns() << " " << redact(_query->toStringShort())
<< " winner score: " << ranking->scores[0] << " winner summary: "
<< redact(Explain::getPlanSummary(_candidates[winnerIdx].root))
<< " winner score: " << ranking->scores[0]
<< " winner summary: " << Explain::getPlanSummary(_candidates[winnerIdx].root)
<< " runner-up score: " << ranking->scores[1] << " runner-up summary: "
<< redact(Explain::getPlanSummary(_candidates[runnerUpIdx].root));
<< Explain::getPlanSummary(_candidates[runnerUpIdx].root);
}

if (alreadyProduced.empty()) {
Expand All @@ -290,8 +290,8 @@ Status MultiPlanStage::pickBestPlan(PlanYieldPolicy* yieldPolicy) {
size_t winnerIdx = ranking->candidateOrder[0];
LOG(1) << "Winning plan had zero results. Not caching."
<< " ns: " << _collection->ns() << " " << redact(_query->toStringShort())
<< " winner score: " << ranking->scores[0] << " winner summary: "
<< redact(Explain::getPlanSummary(_candidates[winnerIdx].root));
<< " winner score: " << ranking->scores[0]
<< " winner summary: " << Explain::getPlanSummary(_candidates[winnerIdx].root);
}
}

Expand Down
8 changes: 4 additions & 4 deletions src/mongo/db/query/get_executor.cpp
Expand Up @@ -407,7 +407,7 @@ StatusWith<PrepareExecutionResult> prepareExecution(OperationContext* opCtx,
root.reset(rawRoot);

LOG(2) << "Using fast count: " << redact(canonicalQuery->toStringShort())
<< ", planSummary: " << redact(Explain::getPlanSummary(root.get()));
<< ", planSummary: " << Explain::getPlanSummary(root.get());

querySolution.reset(solutions[i]);
return PrepareExecutionResult(
Expand All @@ -425,7 +425,7 @@ StatusWith<PrepareExecutionResult> prepareExecution(OperationContext* opCtx,

LOG(2) << "Only one plan is available; it will be run but will not be cached. "
<< redact(canonicalQuery->toStringShort())
<< ", planSummary: " << redact(Explain::getPlanSummary(root.get()));
<< ", planSummary: " << Explain::getPlanSummary(root.get());

querySolution.reset(solutions[0]);
return PrepareExecutionResult(
Expand Down Expand Up @@ -1536,7 +1536,7 @@ StatusWith<unique_ptr<PlanExecutor>> getExecutorDistinct(OperationContext* txn,
unique_ptr<PlanStage> root(rawRoot);

LOG(2) << "Using fast distinct: " << redact(cq->toStringShort())
<< ", planSummary: " << redact(Explain::getPlanSummary(root.get()));
<< ", planSummary: " << Explain::getPlanSummary(root.get());

return PlanExecutor::make(txn,
std::move(ws),
Expand Down Expand Up @@ -1572,7 +1572,7 @@ StatusWith<unique_ptr<PlanExecutor>> getExecutorDistinct(OperationContext* txn,
unique_ptr<PlanStage> root(rawRoot);

LOG(2) << "Using fast distinct: " << redact(cq->toStringShort())
<< ", planSummary: " << redact(Explain::getPlanSummary(root.get()));
<< ", planSummary: " << Explain::getPlanSummary(root.get());

return PlanExecutor::make(txn,
std::move(ws),
Expand Down
2 changes: 1 addition & 1 deletion src/mongo/db/query/plan_ranker.cpp
Expand Up @@ -95,7 +95,7 @@ size_t PlanRanker::pickBestPlan(const vector<CandidatePlan>& candidates, PlanRan
LOG(5) << "Scoring plan " << i << ":" << endl
<< redact(candidates[i].solution->toString()) << "Stats:\n"
<< redact(Explain::statsToBSON(*statTrees[i]).jsonString(Strict, true));
LOG(2) << "Scoring query plan: " << redact(Explain::getPlanSummary(candidates[i].root))
LOG(2) << "Scoring query plan: " << Explain::getPlanSummary(candidates[i].root)
<< " planHitEOF=" << statTrees[i]->common.isEOF;

double score = scoreTree(statTrees[i]);
Expand Down

0 comments on commit 7c14a47

Please sign in to comment.