summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/find_and_modify.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/commands/find_and_modify.cpp
parentb1102c617e04ff751d702435f9d4521727e579e1 (diff)
downloadmongo-3f723beb10caf6bd809b7df05c34b6a97402dadb.tar.gz
SERVER-33542 Avoid swallowing error codes from PlanExecutor errors
Diffstat (limited to 'src/mongo/db/commands/find_and_modify.cpp')
-rw-r--r--src/mongo/db/commands/find_and_modify.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/mongo/db/commands/find_and_modify.cpp b/src/mongo/db/commands/find_and_modify.cpp
index 9757e8e450d..da0f6bfc9a8 100644
--- a/src/mongo/db/commands/find_and_modify.cpp
+++ b/src/mongo/db/commands/find_and_modify.cpp
@@ -120,15 +120,9 @@ boost::optional<BSONObj> advanceExecutor(OperationContext* opCtx,
error() << "Plan executor error during findAndModify: " << PlanExecutor::statestr(state)
<< ", stats: " << redact(Explain::getWinningPlanStats(exec));
- if (WorkingSetCommon::isValidStatusMemberObject(value)) {
- uassertStatusOK(WorkingSetCommon::getMemberObjectStatus(value));
- MONGO_UNREACHABLE;
- }
-
- uasserted(ErrorCodes::OperationFailed,
- str::stream() << "executor returned " << PlanExecutor::statestr(state)
- << " while executing "
- << (isRemove ? "delete" : "update"));
+ uassertStatusOKWithContext(WorkingSetCommon::getMemberObjectStatus(value),
+ "Plan executor error during findAndModify");
+ MONGO_UNREACHABLE;
}
invariant(state == PlanExecutor::IS_EOF);