summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlake Oler <blake.oler@mongodb.com>2023-04-17 18:09:22 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-04-26 19:36:04 +0000
commit2eea702bf931258a0191853c41cdafc74d23cc75 (patch)
tree4b2da2ada4378f6d516212c3d53dc4c0568314e9
parent8abfaf7992a00006b46f7aa3707a7ef946aa686d (diff)
downloadmongo-2eea702bf931258a0191853c41cdafc74d23cc75.tar.gz
SERVER-75987 Synchronize the connection and server threads in `transport_layer_test`
(cherry picked from commit a78040a9e614a92220c31ec12360d6d47b8a8fbd)
-rw-r--r--src/mongo/transport/transport_layer_asio_test.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mongo/transport/transport_layer_asio_test.cpp b/src/mongo/transport/transport_layer_asio_test.cpp
index 613628647ba..b3f63792a26 100644
--- a/src/mongo/transport/transport_layer_asio_test.cpp
+++ b/src/mongo/transport/transport_layer_asio_test.cpp
@@ -527,20 +527,21 @@ TEST(TransportLayerASIO, EgressConnectionResetByPeerDuringSessionCtor) {
// `fp` pauses the `ASIOSession` constructor immediately prior to its
// `setsockopt` sequence, to allow time for the peer reset to propagate.
- FailPoint& fp = transport::transportLayerASIOSessionPauseBeforeSetSocketOption;
+ auto fp = std::make_unique<FailPointEnableBlock>(
+ "transportLayerASIOSessionPauseBeforeSetSocketOption");
Acceptor server(ioContext);
server.setOnAccept([&](std::shared_ptr<Acceptor::Connection> conn) {
+ LOGV2(7598701, "waiting for the client to reach the fail-point");
+ (*fp)->waitForTimesEntered(fp->initialTimesEntered() + 1);
LOGV2(6101604, "handling a connection by resetting it");
conn->socket.set_option(asio::socket_base::linger(true, 0));
conn->socket.close();
- sleepFor(Seconds{1});
- fp.setMode(FailPoint::off);
+ fp.reset();
});
JoinThread ioThread{[&] { ioContext.run(); }};
ScopeGuard ioContextStop = [&] { ioContext.stop(); };
- fp.setMode(FailPoint::alwaysOn);
LOGV2(6101602, "Connecting", "port"_attr = server.port());
using namespace unittest::match;
// On MacOS, calling `setsockopt` on a peer-reset connection yields an