aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/sandbox
diff options
context:
space:
mode:
authorGravatar Laszlo Csomor <laszlocsomor@google.com>2018-01-08 00:45:57 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-08 00:48:00 -0800
commit6ab93a6048260671206622527c89192b1a86284b (patch)
tree8b6c2425eb5b7125bbf2a418d80101328053448b /src/main/java/com/google/devtools/build/lib/sandbox
parentecb481d9afad8863d95aa53a24dc9a75bd204e8f (diff)
sandbox runners: always use updated environment
The sandboxed Spawn runners already used to call LocalEnvProvider.rewriteEnvironment in order to add TMPDIR for example, but didn't consistently use this rewritten environment everywhere, and used the Spawn's original environment instead. Change-Id: Ifbede6ac0f14b83c617dcbcd85edfae88718b157 PiperOrigin-RevId: 181130506
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/sandbox')
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java8
3 files changed, 10 insertions, 14 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java
index 91b3f2370b..6199b5d27f 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java
@@ -222,12 +222,11 @@ final class DarwinSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
// name unique (like we have to with standalone execution strategy).
Path tmpDir = sandboxExecRoot.getRelative("tmp");
- Map<String, String> spawnEnvironment =
+ Map<String, String> environment =
localEnvProvider.rewriteLocalEnv(spawn.getEnvironment(), execRoot, tmpDir, productName);
final HashSet<Path> writableDirs = new HashSet<>(alwaysWritableDirs);
- ImmutableSet<Path> extraWritableDirs =
- getWritableDirs(sandboxExecRoot, spawnEnvironment, tmpDir);
+ ImmutableSet<Path> extraWritableDirs = getWritableDirs(sandboxExecRoot, environment, tmpDir);
writableDirs.addAll(extraWritableDirs);
ImmutableSet<PathFragment> outputs = SandboxHelpers.getOutputFiles(spawn);
@@ -259,9 +258,6 @@ final class DarwinSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
.addAll(processWrapperCommandLineBuilder.build())
.build();
- Map<String, String> environment =
- localEnvProvider.rewriteLocalEnv(spawn.getEnvironment(), execRoot, tmpDir, productName);
-
boolean allowNetworkForThisSpawn = allowNetwork || Spawns.requiresNetwork(spawn);
SandboxedSpawn sandbox =
new SymlinkedSandboxedSpawn(
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java
index 3f1ec63026..72ef7e0ee0 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java
@@ -181,7 +181,10 @@ final class LinuxSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
// name unique (like we have to with standalone execution strategy).
Path tmpDir = sandboxExecRoot.getRelative("tmp");
- Set<Path> writableDirs = getWritableDirs(sandboxExecRoot, spawn.getEnvironment(), tmpDir);
+ Map<String, String> environment =
+ localEnvProvider.rewriteLocalEnv(spawn.getEnvironment(), execRoot, tmpDir, productName);
+
+ Set<Path> writableDirs = getWritableDirs(sandboxExecRoot, environment, tmpDir);
ImmutableSet<PathFragment> outputs = SandboxHelpers.getOutputFiles(spawn);
Duration timeout = policy.getTimeout();
@@ -212,9 +215,6 @@ final class LinuxSandboxedSpawnRunner extends AbstractSandboxSpawnRunner {
commandLineBuilder.setStatisticsPath(statisticsPath.get());
}
- Map<String, String> environment =
- localEnvProvider.rewriteLocalEnv(spawn.getEnvironment(), execRoot, tmpDir, productName);
-
SandboxedSpawn sandbox =
new SymlinkedSandboxedSpawn(
sandboxPath,
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java
index 8a82f4a177..974a641715 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java
@@ -103,6 +103,9 @@ final class ProcessWrapperSandboxedSpawnRunner extends AbstractSandboxSpawnRunne
// name unique (like we have to with standalone execution strategy).
Path tmpDir = sandboxExecRoot.getRelative("tmp");
+ Map<String, String> environment =
+ localEnvProvider.rewriteLocalEnv(spawn.getEnvironment(), execRoot, tmpDir, productName);
+
Duration timeout = policy.getTimeout();
ProcessWrapperUtil.CommandLineBuilder commandLineBuilder =
ProcessWrapperUtil.commandLineBuilder(processWrapper.getPathString(), spawn.getArguments())
@@ -118,9 +121,6 @@ final class ProcessWrapperSandboxedSpawnRunner extends AbstractSandboxSpawnRunne
commandLineBuilder.setStatisticsPath(statisticsPath.get());
}
- Map<String, String> environment =
- localEnvProvider.rewriteLocalEnv(spawn.getEnvironment(), execRoot, tmpDir, productName);
-
SandboxedSpawn sandbox =
new SymlinkedSandboxedSpawn(
sandboxPath,
@@ -129,7 +129,7 @@ final class ProcessWrapperSandboxedSpawnRunner extends AbstractSandboxSpawnRunne
environment,
SandboxHelpers.getInputFiles(spawn, policy, execRoot),
SandboxHelpers.getOutputFiles(spawn),
- getWritableDirs(sandboxExecRoot, spawn.getEnvironment(), tmpDir));
+ getWritableDirs(sandboxExecRoot, environment, tmpDir));
return runSpawn(spawn, sandbox, policy, execRoot, tmpDir, timeout, statisticsPath);
}