summaryrefslogtreecommitdiff
path: root/src/mongo/db/service_entry_point_common.cpp
diff options
context:
space:
mode:
authorBlake Oler <blake.oler@mongodb.com>2023-03-16 14:42:22 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-03-16 15:48:17 +0000
commit31fc2aeddb58282655c27291a04a53dfed88935c (patch)
tree7e9e96eff5044a4c2155de3b27a9be6e486cf65e /src/mongo/db/service_entry_point_common.cpp
parent757102d8184507a82a1bc83b6bbd844ff8e10ab6 (diff)
downloadmongo-31fc2aeddb58282655c27291a04a53dfed88935c.tar.gz
SERVER-73819 Allow internal errors to escape DBDirectClient
Diffstat (limited to 'src/mongo/db/service_entry_point_common.cpp')
-rw-r--r--src/mongo/db/service_entry_point_common.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/db/service_entry_point_common.cpp b/src/mongo/db/service_entry_point_common.cpp
index 839d9860a7d..17833f6be84 100644
--- a/src/mongo/db/service_entry_point_common.cpp
+++ b/src/mongo/db/service_entry_point_common.cpp
@@ -204,8 +204,13 @@ struct HandleRequest {
}
}
+ /**
+ * Note that DBDirectClient is treated as an internal client in relation to letting
+ * internal errors escape.
+ */
bool isInternalClient() const {
- return session() && (session()->getTags() & transport::Session::kInternalClient);
+ return (client().isInDirectClient()) ||
+ (session() && (session()->getTags() & transport::Session::kInternalClient));
}
std::unique_ptr<const ServiceEntryPointCommon::Hooks> behaviors;