From 1f0ae1c45604798888f8b2425475a473d7265bd5 Mon Sep 17 00:00:00 2001 From: Ian Boros Date: Fri, 4 Oct 2019 15:38:42 +0000 Subject: SERVER-43202 propagate errors from interrupts during yielding --- src/mongo/db/query/explain.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/mongo/db/query/explain.cpp') diff --git a/src/mongo/db/query/explain.cpp b/src/mongo/db/query/explain.cpp index 977b7fdb1a1..f39f959b545 100644 --- a/src/mongo/db/query/explain.cpp +++ b/src/mongo/db/query/explain.cpp @@ -882,9 +882,10 @@ void Explain::explainStages(PlanExecutor* exec, if (verbosity >= ExplainOptions::Verbosity::kExecStats) { executePlanStatus = exec->executePlan(); - // If executing the query failed because it was killed, then the collection may no longer be - // valid. We indicate this by setting our collection pointer to null. - if (executePlanStatus == ErrorCodes::QueryPlanKilled) { + // If executing the query failed, for any number of reasons other than a planning failure, + // then the collection may no longer be valid. We conservatively set our collection pointer + // to null in case it is invalid. + if (executePlanStatus != ErrorCodes::NoQueryExecutionPlans) { collection = nullptr; } } -- cgit v1.2.1