diff options
author | A. Jesse Jiryu Davis <jesse@mongodb.com> | 2020-11-11 21:36:28 -0500 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-11-12 03:42:29 +0000 |
commit | d0f87503e4d3dc265fb1340d4f492de884edcda4 (patch) | |
tree | 3a0031759de2d342f1cc55b17a13b6549fb9baf6 /src/mongo/db/repl/transaction_oplog_application.cpp | |
parent | f19bb1bc99dd880e4115d7ae72f931a0031b5851 (diff) | |
download | mongo-d0f87503e4d3dc265fb1340d4f492de884edcda4.tar.gz |
SERVER-51807 Get point-in-time read timestamp in global lock
Diffstat (limited to 'src/mongo/db/repl/transaction_oplog_application.cpp')
-rw-r--r-- | src/mongo/db/repl/transaction_oplog_application.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mongo/db/repl/transaction_oplog_application.cpp b/src/mongo/db/repl/transaction_oplog_application.cpp index 67fb840de64..a8350066cbe 100644 --- a/src/mongo/db/repl/transaction_oplog_application.cpp +++ b/src/mongo/db/repl/transaction_oplog_application.cpp @@ -136,6 +136,8 @@ Status _applyTransactionFromOplogChain(OperationContext* opCtx, status = _applyOperationsForTransaction(opCtx, ops, mode); if (status.isOK()) { + // If the transaction was empty then we have no locks, ensure at least Global IX. + Lock::GlobalLock lk(opCtx, MODE_IX); opCtx->recoveryUnit()->setPrepareTimestamp(commitTimestamp); wunit.prepare(); |