diff options
author | Amirsaman Memaripour <amirsaman.memaripour@mongodb.com> | 2023-04-12 13:14:28 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-04-12 14:10:43 +0000 |
commit | a78040a9e614a92220c31ec12360d6d47b8a8fbd (patch) | |
tree | 533b0b982b8690b0d7760e404ed58c2aa04c1b61 /src/mongo/transport/asio/asio_transport_layer_test.cpp | |
parent | 76b108d1202e9d63094a5ecded35ca6adb5c4423 (diff) | |
download | mongo-a78040a9e614a92220c31ec12360d6d47b8a8fbd.tar.gz |
SERVER-75987 Synchronize the connection and server threads in `transport_layer_test`
Diffstat (limited to 'src/mongo/transport/asio/asio_transport_layer_test.cpp')
-rw-r--r-- | src/mongo/transport/asio/asio_transport_layer_test.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mongo/transport/asio/asio_transport_layer_test.cpp b/src/mongo/transport/asio/asio_transport_layer_test.cpp index 2ab09b01f4e..71fbdc5a455 100644 --- a/src/mongo/transport/asio/asio_transport_layer_test.cpp +++ b/src/mongo/transport/asio/asio_transport_layer_test.cpp @@ -625,15 +625,17 @@ TEST(AsioTransportLayer, EgressConnectionResetByPeerDuringSessionCtor) { // `fp` pauses the `AsioSession` constructor immediately prior to its // `setsockopt` sequence, to allow time for the peer reset to propagate. - FailPoint& fp = transport::asioTransportLayerSessionPauseBeforeSetSocketOption; + auto fp = std::make_unique<FailPointEnableBlock>( + "asioTransportLayerSessionPauseBeforeSetSocketOption"); 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(); @@ -642,7 +644,6 @@ TEST(AsioTransportLayer, EgressConnectionResetByPeerDuringSessionCtor) { 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 |