summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/document_source_cursor.cpp
diff options
context:
space:
mode:
authorCharlie Swanson <charlie.swanson@mongodb.com>2018-03-07 12:29:22 -0500
committerCharlie Swanson <charlie.swanson@mongodb.com>2018-03-12 14:59:17 -0400
commit3f723beb10caf6bd809b7df05c34b6a97402dadb (patch)
tree170e3d1c38808281fb216f4e934abcd336b1743c /src/mongo/db/pipeline/document_source_cursor.cpp
parentb1102c617e04ff751d702435f9d4521727e579e1 (diff)
downloadmongo-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.cpp16
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(