aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar Yue Gan <yueg@google.com>2016-04-28 09:55:43 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-04-28 11:27:51 +0000
commit750656430d4a67b988ea8a9b14753617574b9874 (patch)
tree688ed94e55e5a0da94da4d6c936a843820dcc808 /src/main/java/com/google/devtools/build/lib
parent2236f7d8feec589b1b394542a94238b4f886c5a6 (diff)
Allows network in sandbox, when --java_debug. Fixes #393.
-- MOS_MIGRATED_REVID=121002371
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java9
2 files changed, 13 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
index b953b8a193..385a14d30b 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
@@ -76,6 +76,7 @@ public class LinuxSandboxedStrategy implements SpawnActionContext {
private final Path execRoot;
private final boolean verboseFailures;
private final boolean sandboxDebug;
+ private final boolean unblockNetwork;
private final StandaloneSpawnStrategy standaloneStrategy;
private final List<String> sandboxAddPath;
private final UUID uuid = UUID.randomUUID();
@@ -87,7 +88,8 @@ public class LinuxSandboxedStrategy implements SpawnActionContext {
ExecutorService backgroundWorkers,
boolean verboseFailures,
boolean sandboxDebug,
- List<String> sandboxAddPath) {
+ List<String> sandboxAddPath,
+ boolean unblockNetwork) {
this.clientEnv = ImmutableMap.copyOf(clientEnv);
this.blazeDirs = blazeDirs;
this.execRoot = blazeDirs.getExecRoot();
@@ -95,6 +97,7 @@ public class LinuxSandboxedStrategy implements SpawnActionContext {
this.verboseFailures = verboseFailures;
this.sandboxDebug = sandboxDebug;
this.sandboxAddPath = sandboxAddPath;
+ this.unblockNetwork = unblockNetwork;
this.standaloneStrategy = new StandaloneSpawnStrategy(blazeDirs.getExecRoot(), verboseFailures);
}
@@ -164,7 +167,7 @@ public class LinuxSandboxedStrategy implements SpawnActionContext {
outErr,
outputFiles.build(),
timeout,
- !spawn.getExecutionInfo().containsKey("requires-network"));
+ !this.unblockNetwork && !spawn.getExecutionInfo().containsKey("requires-network"));
} finally {
// Due to the Linux kernel behavior, if we try to remove the sandbox too quickly after the
// process has exited, we get "Device busy" errors because some of the mounts have not yet
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
index 914b0c56e4..2cfe3ddedf 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
@@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList.Builder;
import com.google.devtools.build.lib.actions.ActionContextProvider;
import com.google.devtools.build.lib.actions.Executor.ActionContext;
+import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.buildtool.BuildRequest;
import com.google.devtools.build.lib.exec.ExecutionOptions;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
@@ -37,6 +38,11 @@ public class SandboxActionContextProvider extends ActionContextProvider {
CommandEnvironment env, BuildRequest buildRequest, ExecutorService backgroundWorkers) {
boolean verboseFailures = buildRequest.getOptions(ExecutionOptions.class).verboseFailures;
boolean sandboxDebug = buildRequest.getOptions(SandboxOptions.class).sandboxDebug;
+ boolean unblockNetwork =
+ buildRequest
+ .getOptions(BuildConfiguration.Options.class)
+ .testArguments
+ .contains("--wrapper_script_flag=--debug");
List<String> sandboxAddPath = buildRequest.getOptions(SandboxOptions.class).sandboxAddPath;
Builder<ActionContext> strategies = ImmutableList.builder();
@@ -48,7 +54,8 @@ public class SandboxActionContextProvider extends ActionContextProvider {
backgroundWorkers,
verboseFailures,
sandboxDebug,
- sandboxAddPath));
+ sandboxAddPath,
+ unblockNetwork));
}
this.strategies = strategies.build();