aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/server
diff options
context:
space:
mode:
authorGravatar lberki <lberki@google.com>2018-02-06 09:27:30 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-06 09:29:08 -0800
commitac8eb42c3687906f6758cdaee23f7321b4be22ad (patch)
treea354c0b355b6136bc081a4cc81ad9a2a0fac4ae9 /src/main/java/com/google/devtools/build/lib/server
parente7b1db2c2656ccb660b9228122864f648a9bfd99 (diff)
Move BlazeRuntime/BlazeCommandDispatcher shutdown to where they are created.
RELNOTES: None. PiperOrigin-RevId: 184692000
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/server')
-rw-r--r--src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java31
1 files changed, 17 insertions, 14 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 b768c9040b..58ad98edae 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
@@ -27,6 +27,7 @@ import com.google.devtools.build.lib.clock.Clock;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.LockingMode;
import com.google.devtools.build.lib.runtime.BlazeCommandResult;
+import com.google.devtools.build.lib.runtime.BlazeRuntime;
import com.google.devtools.build.lib.runtime.CommandExecutor;
import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy;
import com.google.devtools.build.lib.server.CommandProtos.CancelRequest;
@@ -55,7 +56,7 @@ import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.InetSocketAddress;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Collections;
@@ -110,11 +111,6 @@ import javax.annotation.concurrent.GuardedBy;
public class GrpcServerImpl implements RPCServer {
private static final Logger logger = Logger.getLogger(GrpcServerImpl.class.getName());
- // UTF-8 won't do because we want to be able to pass arbitrary binary strings.
- // Not that the internals of Bazel handle that correctly, but why not make at least this little
- // part correct?
- private static final Charset CHARSET = Charset.forName("ISO-8859-1");
-
private static final long NANOSECONDS_IN_MS = TimeUnit.MILLISECONDS.toNanos(1);
private class RunningCommand implements AutoCloseable {
@@ -809,11 +805,6 @@ public class GrpcServerImpl implements RPCServer {
return;
}
- ImmutableList.Builder<String> args = ImmutableList.builder();
- for (ByteString requestArg : request.getArgList()) {
- args.add(requestArg.toString(CHARSET));
- }
-
String commandId;
BlazeCommandResult result;
@@ -823,8 +814,12 @@ public class GrpcServerImpl implements RPCServer {
// Convert the startup options record to Java strings, source first.
ImmutableList.Builder<Pair<String, String>> startupOptions = ImmutableList.builder();
for (StartupOption option : request.getStartupOptionsList()) {
- startupOptions.add(
- new Pair<>(option.getSource().toString(CHARSET), option.getOption().toString(CHARSET)));
+ // UTF-8 won't do because we want to be able to pass arbitrary binary strings.
+ // Not that the internals of Bazel handle that correctly, but why not make at least this
+ // little part correct?
+ startupOptions.add(new Pair<>(
+ option.getSource().toString(StandardCharsets.ISO_8859_1),
+ option.getOption().toString(StandardCharsets.ISO_8859_1)));
}
try (RunningCommand command = new RunningCommand()) {
@@ -847,11 +842,19 @@ public class GrpcServerImpl implements RPCServer {
new RpcOutputStream(command.id, responseCookie, StreamType.STDERR, sink));
try {
+ // UTF-8 won't do because we want to be able to pass arbitrary binary strings.
+ // Not that the internals of Bazel handle that correctly, but why not make at least this
+ // little part correct?
+ ImmutableList<String> args = request.getArgList().stream()
+ .map(arg -> arg.toString(StandardCharsets.ISO_8859_1))
+ .collect(ImmutableList.toImmutableList());
+
InvocationPolicy policy = InvocationPolicyParser.parsePolicy(request.getInvocationPolicy());
+ logger.info(BlazeRuntime.getRequestLogString(args));
result =
commandExecutor.exec(
policy,
- args.build(),
+ args,
rpcOutErr,
request.getBlockForLock() ? LockingMode.WAIT : LockingMode.ERROR_OUT,
request.getClientDescription(),