Skip to content

Commit

Permalink
[test] Nerf WritesPerRpcTest due to timeout (grpc#36612)
Browse files Browse the repository at this point in the history
With 1k iterations instead of 10k iterations, this test takes ~90s in the RBE environment. There must have been a regression somewhere, since this test did not used to fail every time.

Closes grpc#36612

COPYBARA_INTEGRATE_REVIEW=grpc#36612 from drfloob:nerf-writes-per-rpc 0ba8af4
PiperOrigin-RevId: 633677652
  • Loading branch information
drfloob authored and copybara-github committed May 14, 2024
1 parent 1585097 commit 6edaa28
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

#include "absl/base/thread_annotations.h"
#include "absl/functional/any_invocable.h"
#include "absl/log/log.h"
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/types/optional.h"
Expand Down Expand Up @@ -314,8 +315,10 @@ class ThreadedFuzzingEventEngine : public FuzzingEventEngine {
fuzzing_event_engine::Actions()),
main_([this, max_time]() {
while (!done_.load()) {
absl::SleepFor(absl::Milliseconds(
grpc_event_engine::experimental::Milliseconds(max_time)));
if (max_time > Duration::zero()) {
absl::SleepFor(absl::Milliseconds(
grpc_event_engine::experimental::Milliseconds(max_time)));
}
Tick();
}
}) {}
Expand Down
23 changes: 13 additions & 10 deletions test/cpp/performance/writes_per_rpc_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ using grpc_event_engine::experimental::URIToResolvedAddress;

void* tag(intptr_t x) { return reinterpret_cast<void*>(x); }

constexpr int kIterations = 10000;
constexpr int kIterations = 1000;
constexpr int kSnapshotEvery = kIterations / 10;
} // namespace

Expand Down Expand Up @@ -216,17 +216,20 @@ static double UnaryPingPong(ThreadedFuzzingEventEngine* fuzzing_engine,
EchoTestService::NewStub(fixture->channel()));
auto baseline = grpc_core::global_stats().Collect();
auto snapshot = grpc_core::global_stats().Collect();
auto last_snapshot = absl::Now();
for (int iteration = 0; iteration < kIterations; iteration++) {
if (iteration % kSnapshotEvery == 0) {
if (iteration > 0 && iteration % kSnapshotEvery == 0) {
auto new_snapshot = grpc_core::global_stats().Collect();
auto diff = new_snapshot->Diff(*snapshot);
gpr_log(GPR_DEBUG,
" SNAPSHOT: UnaryPingPong(%d, %d): writes_per_iteration=%0.3f "
"(total=%lu, i=%d) pings=%lu",
request_size, response_size,
static_cast<double>(diff->syscall_write) /
static_cast<double>(kSnapshotEvery),
diff->syscall_write, iteration, diff->http2_pings_sent);
auto now = absl::Now();
LOG(ERROR) << " SNAPSHOT: UnaryPingPong(" << request_size << ", "
<< response_size << "): writes_per_iteration="
<< static_cast<double>(diff->syscall_write) /
static_cast<double>(kSnapshotEvery)
<< " (total=" << diff->syscall_write << ", i=" << iteration
<< ") pings=" << diff->http2_pings_sent
<< "; duration=" << now - last_snapshot;
last_snapshot = now;
snapshot = std::move(new_snapshot);
}
recv_response.Clear();
Expand All @@ -238,7 +241,7 @@ static double UnaryPingPong(ThreadedFuzzingEventEngine* fuzzing_engine,
response_reader->Finish(&recv_response, &recv_status, tag(4));
CHECK(fixture->cq()->Next(&t, &ok));
CHECK(ok);
CHECK(t == tag(0) || t == tag(1));
CHECK(t == tag(0) || t == tag(1)) << "Found unexpected tag " << t;
intptr_t slot = reinterpret_cast<intptr_t>(t);
ServerEnv* senv = server_env[slot];
senv->response_writer.Finish(send_response, Status::OK, tag(3));
Expand Down

0 comments on commit 6edaa28

Please sign in to comment.