diff options
author | Cheahuychou Mao <mao.cheahuychou@gmail.com> | 2021-07-30 07:59:06 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-08-14 19:06:10 +0000 |
commit | 507db599d04640d4585c6cf85ae9143fc1e628f2 (patch) | |
tree | 1697969e431b57b35a682a4e65b9dc31a364319b /src/mongo/db/initialize_operation_session_info.cpp | |
parent | 632105d33ab6931e86626db08160800d41bb1329 (diff) | |
download | mongo-507db599d04640d4585c6cf85ae9143fc1e628f2.tar.gz |
SERVER-58751 Make logical session cache track related sessions as one logical session
Diffstat (limited to 'src/mongo/db/initialize_operation_session_info.cpp')
-rw-r--r-- | src/mongo/db/initialize_operation_session_info.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mongo/db/initialize_operation_session_info.cpp b/src/mongo/db/initialize_operation_session_info.cpp index afa0c739b6f..c655b9ae7f7 100644 --- a/src/mongo/db/initialize_operation_session_info.cpp +++ b/src/mongo/db/initialize_operation_session_info.cpp @@ -94,6 +94,12 @@ OperationSessionInfoFromClient initializeOperationSessionInfo(OperationContext* return {}; } + if (getParentSessionId(lsid)) { + uassert(ErrorCodes::InvalidOptions, + "Internal sessions are not supported outside of transactions", + osi.getTxnNumber() && osi.getAutocommit() && !osi.getAutocommit().value()); + } + opCtx->setLogicalSessionId(std::move(lsid)); uassertStatusOK(lsc->vivify(opCtx, opCtx->getLogicalSessionId().get())); } else { |