Skip to content

Commit 98ac2a3

Browse files
committed
bug benchmark: fix flap
commit_hash:ad252bc4e5367b65c3078a87d7aa58aa3398d1b1
1 parent acd80ab commit 98ac2a3

File tree

1 file changed

+19
-20
lines changed

1 file changed

+19
-20
lines changed

core/src/engine/io/tls_wrapper_benchmark.cpp

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#include <userver/engine/io/tls_wrapper.hpp>
1313
#include <userver/engine/run_standalone.hpp>
1414
#include <userver/engine/single_consumer_event.hpp>
15-
#include <userver/engine/sleep.hpp>
1615
#include <userver/internal/net/net_listener.hpp>
1716
#include <userver/logging/log.hpp>
1817
#include <userver/utils/async.hpp>
@@ -92,18 +91,17 @@ constexpr auto kDeadlineMaxTime = std::chrono::seconds{60};
9291
TcpListener tcp_listener;
9392
auto [server, client] = tcp_listener.MakeSocketPair(deadline);
9493

95-
std::atomic<bool> reading{true};
9694
crypto::SslCtx ssl_ctx = crypto::SslCtx::CreateServerTlsContext(
9795
crypto::LoadCertificatesChainFromString(cert),
9896
crypto::PrivateKey::LoadFromString(key)
9997
);
10098
auto server_task = engine::AsyncNoSpan(
101-
[&reading, deadline, &ssl_ctx](auto&& server) {
99+
[deadline, &ssl_ctx](auto&& server) {
102100
auto tls_server =
103101
io::TlsWrapper::StartTlsServer(std::forward<decltype(server)>(server), ssl_ctx, deadline);
104102

105103
std::array<std::byte, 16'384> buf{};
106-
while (tls_server.RecvSome(buf.data(), buf.size(), deadline) > 0 && reading) {
104+
while (tls_server.RecvSome(buf.data(), buf.size(), deadline) > 0) {
107105
/* receiving msgs */
108106
}
109107
},
@@ -114,15 +112,16 @@ constexpr auto kDeadlineMaxTime = std::chrono::seconds{60};
114112
const std::string payload(state.range(0), 'x');
115113
const engine::io::IoData big_msg{payload.data(), payload.size()};
116114

117-
auto tls_client = io::TlsWrapper::StartTlsClient(std::move(client), {}, deadline);
115+
{
116+
auto tls_client = io::TlsWrapper::StartTlsClient(std::move(client), {}, deadline);
118117

119-
for ([[maybe_unused]] auto _ : state) {
120-
auto send_bytes =
121-
tls_client.WriteAll({msg, msg, msg, big_msg, msg, msg, big_msg, msg, big_msg, msg, msg}, deadline);
122-
benchmark::DoNotOptimize(send_bytes);
118+
for ([[maybe_unused]] auto _ : state) {
119+
auto send_bytes =
120+
tls_client.WriteAll({msg, msg, msg, big_msg, msg, msg, big_msg, msg, big_msg, msg, msg}, deadline);
121+
benchmark::DoNotOptimize(send_bytes);
122+
}
123123
}
124124

125-
reading.store(false);
126125
server_task.Get();
127126
});
128127
}
@@ -136,18 +135,17 @@ BENCHMARK(TlsWriteAllBuffered)->RangeMultiplier(2)->Range(1 << 6, 1 << 12)->Unit
136135
TcpListener tcp_listener;
137136
auto [server, client] = tcp_listener.MakeSocketPair(deadline);
138137

139-
std::atomic<bool> reading{true};
140138
crypto::SslCtx ssl_ctx = crypto::SslCtx::CreateServerTlsContext(
141139
crypto::LoadCertificatesChainFromString(cert),
142140
crypto::PrivateKey::LoadFromString(key)
143141
);
144142
auto server_task = engine::AsyncNoSpan(
145-
[&reading, deadline, &ssl_ctx](auto&& server) {
143+
[deadline, &ssl_ctx](auto&& server) {
146144
auto tls_server =
147145
io::TlsWrapper::StartTlsServer(std::forward<decltype(server)>(server), ssl_ctx, deadline);
148146

149147
std::array<std::byte, 16'384> buf{};
150-
while (tls_server.RecvSome(buf.data(), buf.size(), deadline) > 0 && reading) {
148+
while (tls_server.RecvSome(buf.data(), buf.size(), deadline) > 0) {
151149
/* receiving msgs */
152150
}
153151
},
@@ -158,17 +156,18 @@ BENCHMARK(TlsWriteAllBuffered)->RangeMultiplier(2)->Range(1 << 6, 1 << 12)->Unit
158156
const std::string payload(state.range(0), 'x');
159157
const engine::io::IoData big_msg{payload.data(), payload.size()};
160158

161-
auto tls_client = io::TlsWrapper::StartTlsClient(std::move(client), {}, deadline);
159+
{
160+
auto tls_client = io::TlsWrapper::StartTlsClient(std::move(client), {}, deadline);
162161

163-
std::size_t send_bytes{0};
164-
for ([[maybe_unused]] auto _ : state) {
165-
for (const auto& io_data : {msg, msg, msg, big_msg, msg, msg, big_msg, msg, big_msg, msg, msg}) {
166-
send_bytes += tls_client.WriteAll(io_data.data, io_data.len, deadline);
162+
std::size_t send_bytes{0};
163+
for ([[maybe_unused]] auto _ : state) {
164+
for (const auto& io_data : {msg, msg, msg, big_msg, msg, msg, big_msg, msg, big_msg, msg, msg}) {
165+
send_bytes += tls_client.WriteAll(io_data.data, io_data.len, deadline);
166+
}
167+
benchmark::DoNotOptimize(send_bytes);
167168
}
168-
benchmark::DoNotOptimize(send_bytes);
169169
}
170170

171-
reading.store(false);
172171
server_task.Get();
173172
});
174173
}

0 commit comments

Comments
 (0)