summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeert Bosch <geert@mongodb.com>2017-04-07 11:37:14 -0400
committerGeert Bosch <geert@mongodb.com>2017-04-08 21:00:11 -0400
commitd17d4907001cb02e3697148df4b3016ac232d0a1 (patch)
treed85950fe563d26bfd80ba18264f3c94666f9070e
parent2e73d280774aa6924c9ef2b8a1ecd8681f7b9477 (diff)
downloadmongo-d17d4907001cb02e3697148df4b3016ac232d0a1.tar.gz
SERVER-28646 Don't report ops as passed if logOps causes txn to fail
-rw-r--r--src/mongo/db/catalog/apply_ops.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mongo/db/catalog/apply_ops.cpp b/src/mongo/db/catalog/apply_ops.cpp
index 9041a077509..fef8e8f5793 100644
--- a/src/mongo/db/catalog/apply_ops.cpp
+++ b/src/mongo/db/catalog/apply_ops.cpp
@@ -329,10 +329,12 @@ Status applyOps(OperationContext* opCtx,
// Perform write ops atomically
try {
MONGO_WRITE_CONFLICT_RETRY_LOOP_BEGIN {
+ BSONObjBuilder intermediateResult;
WriteUnitOfWork wunit(opCtx);
numApplied = 0;
- uassertStatusOK(_applyOps(opCtx, dbName, applyOpCmd, result, &numApplied));
+ uassertStatusOK(_applyOps(opCtx, dbName, applyOpCmd, &intermediateResult, &numApplied));
wunit.commit();
+ result->appendElements(intermediateResult.obj());
}
MONGO_WRITE_CONFLICT_RETRY_LOOP_END(opCtx, "applyOps", dbName);
} catch (const DBException& ex) {