aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-07-18 11:17:22 +0000
committerGravatar John Cater <jcater@google.com>2016-07-18 18:08:35 +0000
commit266965f7adb629b0a4b8de6bcd5d6a514a52c6df (patch)
tree90f5a23254a359d16752ab826131a4e6d659bc8a /src
parentc5cd8dd7e2689ea0f103a62678ea3ca0f4bc4190 (diff)
Actually restart server timeout on Ping() and Cancel() RPCs.
In theory, now we can cancel Ping() and Cancel() RPCs, too, but since we don't tell their UUID anyone, we are fine. -- MOS_MIGRATED_REVID=127703598
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java42
1 files changed, 18 insertions, 24 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java b/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java
index e3e95b4740..f6a37fa334 100644
--- a/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java
+++ b/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java
@@ -412,25 +412,19 @@ public class GrpcServerImpl extends RPCServer implements CommandServerGrpc.Comma
}
}
- private void restartIdleTimeout() {
- synchronized (runningCommands) {
- runningCommands.notify();
- }
- }
-
@Override
public void ping(PingRequest pingRequest, StreamObserver<PingResponse> streamObserver) {
Preconditions.checkState(serving);
- PingResponse.Builder response = PingResponse.newBuilder();
- if (pingRequest.getCookie().equals(requestCookie)) {
- response.setCookie(responseCookie);
- }
-
- streamObserver.onNext(response.build());
- streamObserver.onCompleted();
+ try (RunningCommand command = new RunningCommand()) {
+ PingResponse.Builder response = PingResponse.newBuilder();
+ if (pingRequest.getCookie().equals(requestCookie)) {
+ response.setCookie(responseCookie);
+ }
- restartIdleTimeout();
+ streamObserver.onNext(response.build());
+ streamObserver.onCompleted();
+ }
}
@Override
@@ -440,18 +434,18 @@ public class GrpcServerImpl extends RPCServer implements CommandServerGrpc.Comma
return;
}
- synchronized (runningCommands) {
- RunningCommand command = runningCommands.get(request.getCommandId());
- if (command != null) {
- command.thread.interrupt();
+ try (RunningCommand cancelCommand = new RunningCommand()) {
+ synchronized (runningCommands) {
+ RunningCommand pendingCommand = runningCommands.get(request.getCommandId());
+ if (pendingCommand != null) {
+ pendingCommand.thread.interrupt();
+ }
+
+ startSlowInterruptWatcher(ImmutableSet.of(request.getCommandId()));
}
- startSlowInterruptWatcher(ImmutableSet.of(request.getCommandId()));
+ streamObserver.onNext(CancelResponse.newBuilder().setCookie(responseCookie).build());
+ streamObserver.onCompleted();
}
-
- streamObserver.onNext(CancelResponse.newBuilder().setCookie(responseCookie).build());
- streamObserver.onCompleted();
-
- restartIdleTimeout();
}
}