diff options
author | Geert Bosch <geert@mongodb.com> | 2017-04-07 11:37:14 -0400 |
---|---|---|
committer | Geert Bosch <geert@mongodb.com> | 2017-04-08 21:00:11 -0400 |
commit | d17d4907001cb02e3697148df4b3016ac232d0a1 (patch) | |
tree | d85950fe563d26bfd80ba18264f3c94666f9070e | |
parent | 2e73d280774aa6924c9ef2b8a1ecd8681f7b9477 (diff) | |
download | mongo-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.cpp | 4 |
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) { |