diff options
author | philwo <philwo@google.com> | 2017-08-17 15:33:15 +0200 |
---|---|---|
committer | Irina Iancu <elenairina@google.com> | 2017-08-18 09:00:41 +0200 |
commit | 6b9d6827e72fad4058837528e726a41443f0da51 (patch) | |
tree | bd756b2ab23f2d49e536e5f311a3582c79cb8de1 /src/main/java/com/google | |
parent | 4c1fe6ccf4b9c6807ba136cc1390be63e63405a6 (diff) |
Add the workspace name to the sandbox path for sandboxed workers.
PiperOrigin-RevId: 165571541
Diffstat (limited to 'src/main/java/com/google')
4 files changed, 27 insertions, 18 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/worker/SandboxedWorker.java b/src/main/java/com/google/devtools/build/lib/worker/SandboxedWorker.java index a06ddc0114..fedd037d1c 100644 --- a/src/main/java/com/google/devtools/build/lib/worker/SandboxedWorker.java +++ b/src/main/java/com/google/devtools/build/lib/worker/SandboxedWorker.java @@ -45,13 +45,14 @@ final class SandboxedWorker extends Worker { // used to pass information to this method and the method below. Instead, don't pass the // WorkerKey to this method but only the input and output files. new SymlinkedSandboxedSpawn( - workDir, - workDir, - ImmutableList.of("/does_not_exist"), - ImmutableMap.<String, String>of(), - key.getInputFiles(), - key.getOutputFiles(), - ImmutableSet.<Path>of()).createFileSystem(); + workDir, + workDir, + ImmutableList.of("/does_not_exist"), + ImmutableMap.of(), + key.getInputFiles(), + key.getOutputFiles(), + ImmutableSet.of()) + .createFileSystem(); } @Override @@ -59,12 +60,13 @@ final class SandboxedWorker extends Worker { // Note: the key passed in here may be different from the key passed to the constructor for // subsequent invocations of the same worker. new SymlinkedSandboxedSpawn( - workDir, - workDir, - ImmutableList.of("/does_not_exist"), - ImmutableMap.<String, String>of(), - key.getInputFiles(), - key.getOutputFiles(), - ImmutableSet.<Path>of()).copyOutputs(key.getExecRoot()); + workDir, + workDir, + ImmutableList.of("/does_not_exist"), + ImmutableMap.of(), + key.getInputFiles(), + key.getOutputFiles(), + ImmutableSet.of()) + .copyOutputs(key.getExecRoot()); } } diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java index 1e0e611cab..6f75fcf29d 100644 --- a/src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java +++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java @@ -60,7 +60,7 @@ final class WorkerFactory extends BaseKeyedPooledObjectFactory<WorkerKey, Worker Worker worker; boolean sandboxed = workerOptions.workerSandboxing || key.mustBeSandboxed(); if (sandboxed) { - Path workDir = workerBaseDir.getRelative("worker-" + workerId + "-" + key.getMnemonic()); + Path workDir = getSandboxedWorkerPath(key, workerId); worker = new SandboxedWorker(key, workerId, workDir, logFile); } else { worker = new Worker(key, workerId, key.getExecRoot(), logFile); @@ -80,6 +80,13 @@ final class WorkerFactory extends BaseKeyedPooledObjectFactory<WorkerKey, Worker return worker; } + Path getSandboxedWorkerPath(WorkerKey key, int workerId) { + String workspaceName = key.getExecRoot().getBaseName(); + return workerBaseDir + .getRelative("worker-" + workerId + "-" + key.getMnemonic()) + .getRelative(workspaceName); + } + /** * Use the DefaultPooledObject implementation. */ diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerModule.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerModule.java index 0ac6cc031a..578cc12219 100644 --- a/src/main/java/com/google/devtools/build/lib/worker/WorkerModule.java +++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerModule.java @@ -44,8 +44,8 @@ public class WorkerModule extends BlazeModule { @Override public Iterable<Class<? extends OptionsBase>> getCommandOptions(Command command) { return "build".equals(command.name()) - ? ImmutableList.<Class<? extends OptionsBase>>of(WorkerOptions.class) - : ImmutableList.<Class<? extends OptionsBase>>of(); + ? ImmutableList.of(WorkerOptions.class) + : ImmutableList.of(); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java index 9bcc6e3d0a..c69193c00f 100644 --- a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java +++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java @@ -95,7 +95,7 @@ final class WorkerSpawnRunner implements SpawnRunner { if (!spawn.getExecutionInfo().containsKey(ExecutionRequirements.SUPPORTS_WORKERS) || !spawn.getExecutionInfo().get(ExecutionRequirements.SUPPORTS_WORKERS).equals("1")) { // TODO(ulfjack): Don't circumvent SpawnExecutionPolicy. Either drop the warning here, or - // provide a mechanism in SpawnExectionPolicy to report warnings. + // provide a mechanism in SpawnExecutionPolicy to report warnings. reporter.handle( Event.warn( String.format(ERROR_MESSAGE_PREFIX + REASON_NO_EXECUTION_INFO, spawn.getMnemonic()))); |