From f3ab4a4130fad239d032e3dc9c3c75d88bca19b6 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 26 Oct 2016 11:03:39 -0700 Subject: [PATCH] benchmarks: Avoid sending a message after half close This doesn't impact test behavior per-se, but causes it to produce less useless log output of the form: java.lang.IllegalStateException: call was half-closed at com.google.common.base.Preconditions.checkState(Preconditions.java:174) at io.grpc.internal.ClientCallImpl.sendMessage(ClientCallImpl.java:380) at io.grpc.stub.ClientCalls$CallToStreamObserverAdapter.onNext(ClientCalls.java:299) at io.grpc.benchmarks.driver.LoadClient$AsyncPingPongWorker$1.onNext(LoadClient.java:406) at io.grpc.benchmarks.driver.LoadClient$AsyncPingPongWorker$1.onNext(LoadClient.java:400) at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onMessage(ClientCalls.java:382) at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessageRead.runInContext(ClientCallImpl.java:473) ... 7 more Fixes #2372 --- .../src/main/java/io/grpc/benchmarks/driver/LoadClient.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/benchmarks/src/main/java/io/grpc/benchmarks/driver/LoadClient.java b/benchmarks/src/main/java/io/grpc/benchmarks/driver/LoadClient.java index cea81ab0b4e..aa57031163b 100644 --- a/benchmarks/src/main/java/io/grpc/benchmarks/driver/LoadClient.java +++ b/benchmarks/src/main/java/io/grpc/benchmarks/driver/LoadClient.java @@ -403,11 +403,13 @@ public void run() { @Override public void onNext(Messages.SimpleResponse value) { delay(System.nanoTime() - now); - requestObserver.get().onNext(simpleRequest); - now = System.nanoTime(); if (shutdown) { requestObserver.get().onCompleted(); + // Must not send another request. + return; } + requestObserver.get().onNext(simpleRequest); + now = System.nanoTime(); } @Override