diff options
author | George Wangensteen <george.wangensteen@mongodb.com> | 2023-04-10 04:34:50 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-04-10 05:13:18 +0000 |
commit | c6e5701933a98b4fe91c2409c212fcce2d3d34f0 (patch) | |
tree | 4ed7d170b72523beecb2c599ab4c8877a8fb4990 /src/mongo/executor/network_interface_tl.h | |
parent | a37946ca13ae1d1bab79b8e47fd9d70d2ee0cf27 (diff) | |
download | mongo-c6e5701933a98b4fe91c2409c212fcce2d3d34f0.tar.gz |
SERVER-75725 Control TaskExecutorCursor's connection-pinning behavior with a server parameter and add appropriate testing. In this PR, we:
- Remove the now-obsolete getCallbackHandle interface from TEC.
- Hook up the TEC default pinConnection-parameter to the relevant server parameter
- Add a new suite running all search tests with that server parameter enabled
- Fix a small bug to ensure we use the SSL mode provided by the request in PCTE
- Fix a small bug to appropriately handle the case where we can't acquire a stream from the transport layer
Diffstat (limited to 'src/mongo/executor/network_interface_tl.h')
-rw-r--r-- | src/mongo/executor/network_interface_tl.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mongo/executor/network_interface_tl.h b/src/mongo/executor/network_interface_tl.h index 52bbe07273a..880a8f46e21 100644 --- a/src/mongo/executor/network_interface_tl.h +++ b/src/mongo/executor/network_interface_tl.h @@ -395,8 +395,10 @@ private: std::unique_ptr<transport::TransportLayer> _ownedTransportLayer; transport::ReactorHandle _reactor; - mutable Mutex _mutex = - MONGO_MAKE_LATCH(HierarchicalAcquisitionLevel(3), "NetworkInterfaceTL::_mutex"); + // TODO SERVER-75830: This Mutex used to be at hierarcichal acquisition level 3. We temporary + // removed the level because it is sometimes acquired as part of task-scheduling when + // lower-level mutexes (like the ConnectionPool's) are held. + mutable Mutex _mutex = MONGO_MAKE_LATCH("NetworkInterfaceTL::_mutex"); const ConnectionPool::Options _connPoolOpts; std::unique_ptr<NetworkConnectionHook> _onConnectHook; std::shared_ptr<ConnectionPool> _pool; |