summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog
diff options
context:
space:
mode:
authorGeert Bosch <geert@mongodb.com>2017-04-07 11:37:14 -0400
committerGeert Bosch <geert@mongodb.com>2017-04-11 17:42:02 -0400
commit2206856999b0f9eb5a6b83f2da740efceeca1387 (patch)
tree8df76f1cc1e3a88f1c8509bb1fc509e986c98b9a /src/mongo/db/catalog
parent0f715bb978334314a0304b3d9aa629d297f2b313 (diff)
downloadmongo-2206856999b0f9eb5a6b83f2da740efceeca1387.tar.gz
SERVER-28646 Don't report ops as passed if logOps causes txn to fail
(cherry picked from commit d17d4907001cb02e3697148df4b3016ac232d0a1) Conflicts: src/mongo/db/catalog/apply_ops.cpp
Diffstat (limited to 'src/mongo/db/catalog')
-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 7ddff58db32..672a37a10c7 100644
--- a/src/mongo/db/catalog/apply_ops.cpp
+++ b/src/mongo/db/catalog/apply_ops.cpp
@@ -331,10 +331,12 @@ Status applyOps(OperationContext* txn,
// Perform write ops atomically
try {
MONGO_WRITE_CONFLICT_RETRY_LOOP_BEGIN {
+ BSONObjBuilder intermediateResult;
WriteUnitOfWork wunit(txn);
numApplied = 0;
- uassertStatusOK(_applyOps(txn, dbName, applyOpCmd, result, &numApplied));
+ uassertStatusOK(_applyOps(txn, dbName, applyOpCmd, &intermediateResult, &numApplied));
wunit.commit();
+ result->appendElements(intermediateResult.obj());
}
MONGO_WRITE_CONFLICT_RETRY_LOOP_END(txn, "applyOps", dbName);
} catch (const DBException& ex) {