summaryrefslogtreecommitdiff
path: root/src/mongo/db/operation_context.h
diff options
context:
space:
mode:
authorJudah Schvimer <judah@mongodb.com>2020-06-01 19:02:23 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-06-08 19:34:41 +0000
commitc7c78598d530710b1e0c8805bfceb37ccde08604 (patch)
treefc178f573bba5e4dea671cce081f76a921304d6b /src/mongo/db/operation_context.h
parenta210979713f0f086b044bff070912437e0db7488 (diff)
downloadmongo-c7c78598d530710b1e0c8805bfceb37ccde08604.tar.gz
SERVER-48527 Aborting in-progress transactions on step-up should clear session state before returning
Diffstat (limited to 'src/mongo/db/operation_context.h')
-rw-r--r--src/mongo/db/operation_context.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mongo/db/operation_context.h b/src/mongo/db/operation_context.h
index 46626d843b7..d8f92af60cf 100644
--- a/src/mongo/db/operation_context.h
+++ b/src/mongo/db/operation_context.h
@@ -407,6 +407,19 @@ public:
}
/**
+ * Clears metadata associated with a multi-document transaction.
+ */
+ void resetMultiDocumentTransactionState() {
+ invariant(_inMultiDocumentTransaction);
+ invariant(!_writeUnitOfWork);
+ invariant(_ruState == WriteUnitOfWork::RecoveryUnitState::kNotInUnitOfWork);
+ _inMultiDocumentTransaction = false;
+ _isStartingMultiDocumentTransaction = false;
+ _lsid = boost::none;
+ _txnNumber = boost::none;
+ }
+
+ /**
* Returns whether this operation is starting a multi-document transaction.
*/
bool isStartingMultiDocumentTransaction() const {