diff options
author | Charlie Swanson <charlie.swanson@mongodb.com> | 2018-03-07 12:29:22 -0500 |
---|---|---|
committer | Charlie Swanson <charlie.swanson@mongodb.com> | 2018-03-12 14:59:17 -0400 |
commit | 3f723beb10caf6bd809b7df05c34b6a97402dadb (patch) | |
tree | 170e3d1c38808281fb216f4e934abcd336b1743c /src/mongo/db/pipeline/document_source_cursor.cpp | |
parent | b1102c617e04ff751d702435f9d4521727e579e1 (diff) | |
download | mongo-3f723beb10caf6bd809b7df05c34b6a97402dadb.tar.gz |
SERVER-33542 Avoid swallowing error codes from PlanExecutor errors
Diffstat (limited to 'src/mongo/db/pipeline/document_source_cursor.cpp')
-rw-r--r-- | src/mongo/db/pipeline/document_source_cursor.cpp | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/mongo/db/pipeline/document_source_cursor.cpp b/src/mongo/db/pipeline/document_source_cursor.cpp index 10d049cef28..10fe39a1484 100644 --- a/src/mongo/db/pipeline/document_source_cursor.cpp +++ b/src/mongo/db/pipeline/document_source_cursor.cpp @@ -133,23 +133,15 @@ void DocumentSourceCursor::loadBatch() { case PlanExecutor::ADVANCED: case PlanExecutor::IS_EOF: return; // We've reached our limit or exhausted the cursor. - case PlanExecutor::DEAD: { - _execStatus = - Status(ErrorCodes::QueryPlanKilled, - str::stream() << "collection or index disappeared when cursor yielded: " - << WorkingSetCommon::toStatusString(resultObj)); - break; - } + case PlanExecutor::DEAD: case PlanExecutor::FAILURE: { - _execStatus = Status(ErrorCodes::Error(17285), - str::stream() << "cursor encountered an error: " - << WorkingSetCommon::toStatusString(resultObj)); - break; + _execStatus = WorkingSetCommon::getMemberObjectStatus(resultObj).withContext( + "Error in $cursor stage"); + uassertStatusOK(_execStatus); } default: MONGO_UNREACHABLE; } - uassertStatusOK(_execStatus); } Pipeline::SourceContainer::iterator DocumentSourceCursor::doOptimizeAt( |