diff options
author | Yue Gan <yueg@google.com> | 2016-04-28 09:55:43 +0000 |
---|---|---|
committer | Yun Peng <pcloudy@google.com> | 2016-04-28 11:27:51 +0000 |
commit | 750656430d4a67b988ea8a9b14753617574b9874 (patch) | |
tree | 688ed94e55e5a0da94da4d6c936a843820dcc808 /src/main/java/com/google/devtools/build/lib | |
parent | 2236f7d8feec589b1b394542a94238b4f886c5a6 (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.java | 7 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java | 9 |
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(); |