aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar philwo <philwo@google.com>2017-08-17 15:33:15 +0200
committerGravatar Irina Iancu <elenairina@google.com>2017-08-18 09:00:41 +0200
commit6b9d6827e72fad4058837528e726a41443f0da51 (patch)
treebd756b2ab23f2d49e536e5f311a3582c79cb8de1 /src/main/java/com/google
parent4c1fe6ccf4b9c6807ba136cc1390be63e63405a6 (diff)
Add the workspace name to the sandbox path for sandboxed workers.
PiperOrigin-RevId: 165571541
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/SandboxedWorker.java30
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerModule.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java2
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())));