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/commands/find_and_modify.cpp | |
parent | b1102c617e04ff751d702435f9d4521727e579e1 (diff) | |
download | mongo-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.cpp | 12 |
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); |