diff options
| author | James Wahlin <james@mongodb.com> | 2018-07-20 09:05:04 -0400 |
|---|---|---|
| committer | James Wahlin <james@mongodb.com> | 2018-07-27 14:14:20 -0400 |
| commit | 54f1582fc6eb01de4d4c42f26fc133e623f065fb (patch) | |
| tree | 5267a15f4d28a68d9ecf0dc0622c26fa52832a1d /src/mongo/db/exec | |
| parent | 9d5a4298d2dd876d0762b27221332f0d9cc1871e (diff) | |
SERVER-35031 Return MaxTimeMSExpired for maxTimeMS timeoutr4.0.1-rc1r4.0.1
Adds a new 'MaxTimeMSExpired' error code, returned when a timeout occurs
due to exceeding of maxTimeMS. Timeouts unrelated to maxTimeMS will
continue to return 'ExceededTimeLimit'.
(cherry picked from commit 35528523c00b72a210dc5b78a427d90ed1c14331)
Diffstat (limited to 'src/mongo/db/exec')
| -rw-r--r-- | src/mongo/db/exec/cached_plan.h | 2 | ||||
| -rw-r--r-- | src/mongo/db/exec/subplan.cpp | 9 | ||||
| -rw-r--r-- | src/mongo/db/exec/subplan.h | 2 |
3 files changed, 3 insertions, 10 deletions
diff --git a/src/mongo/db/exec/cached_plan.h b/src/mongo/db/exec/cached_plan.h index 658312db4a0..9a2ec1a1b81 100644 --- a/src/mongo/db/exec/cached_plan.h +++ b/src/mongo/db/exec/cached_plan.h @@ -112,7 +112,7 @@ private: * * Returns a non-OK status if query planning fails. In particular, this function returns * ErrorCodes::QueryPlanKilled if the query plan was killed during a yield, or - * ErrorCodes::ExceededTimeLimit if the operation exceeded its time limit. + * ErrorCodes::MaxTimeMSExpired if the operation exceeded its time limit. */ Status tryYield(PlanYieldPolicy* yieldPolicy); diff --git a/src/mongo/db/exec/subplan.cpp b/src/mongo/db/exec/subplan.cpp index 0ece253d30b..5d5c85d45fc 100644 --- a/src/mongo/db/exec/subplan.cpp +++ b/src/mongo/db/exec/subplan.cpp @@ -433,13 +433,6 @@ Status SubplanStage::pickBestPlan(PlanYieldPolicy* yieldPolicy) { // Plan each branch of the $or. Status subplanningStatus = planSubqueries(); if (!subplanningStatus.isOK()) { - if (subplanningStatus == ErrorCodes::QueryPlanKilled || - subplanningStatus == ErrorCodes::ExceededTimeLimit) { - // Query planning cannot continue if the plan for one of the subqueries was killed - // because the collection or a candidate index may have been dropped, or if we've - // exceeded the operation's time limit. - return subplanningStatus; - } return choosePlanWholeQuery(yieldPolicy); } @@ -448,7 +441,7 @@ Status SubplanStage::pickBestPlan(PlanYieldPolicy* yieldPolicy) { Status subplanSelectStat = choosePlanForSubqueries(yieldPolicy); if (!subplanSelectStat.isOK()) { if (subplanSelectStat == ErrorCodes::QueryPlanKilled || - subplanSelectStat == ErrorCodes::ExceededTimeLimit) { + subplanSelectStat == ErrorCodes::MaxTimeMSExpired) { // Query planning cannot continue if the plan for one of the subqueries was killed // because the collection or a candidate index may have been dropped, or if we've // exceeded the operation's time limit. diff --git a/src/mongo/db/exec/subplan.h b/src/mongo/db/exec/subplan.h index c61fb3201d4..a05ac4e2955 100644 --- a/src/mongo/db/exec/subplan.h +++ b/src/mongo/db/exec/subplan.h @@ -103,7 +103,7 @@ public: * * Returns a non-OK status if query planning fails. In particular, this function returns * ErrorCodes::QueryPlanKilled if the query plan was killed during a yield, or - * ErrorCodes::ExceededTimeLimit if the operation has exceeded its time limit. + * ErrorCodes::MaxTimeMSExpired if the operation has exceeded its time limit. */ Status pickBestPlan(PlanYieldPolicy* yieldPolicy); |
