Add DescribableExecutionUnit interface to allow centralizing command failure descriptions.
PiperOrigin-RevId: 398323043
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/AbstractSandboxSpawnRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/AbstractSandboxSpawnRunner.java
index 7272343..1769a81 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/AbstractSandboxSpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/AbstractSandboxSpawnRunner.java
@@ -159,18 +159,10 @@
private String makeFailureMessage(Spawn originalSpawn, SandboxedSpawn sandbox) {
if (sandboxOptions.sandboxDebug) {
return CommandFailureUtils.describeCommandFailure(
- true,
- sandbox.getArguments(),
- sandbox.getEnvironment(),
- sandbox.getSandboxExecRoot().getPathString(),
- null);
+ true, sandbox.getSandboxExecRoot().getPathString(), sandbox);
} else {
return CommandFailureUtils.describeCommandFailure(
- verboseFailures,
- originalSpawn.getArguments(),
- originalSpawn.getEnvironment(),
- sandbox.getSandboxExecRoot().getPathString(),
- originalSpawn.getExecutionPlatform())
+ verboseFailures, sandbox.getSandboxExecRoot().getPathString(), originalSpawn)
+ SANDBOX_DEBUG_SUGGESTION;
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/BUILD b/src/main/java/com/google/devtools/build/lib/sandbox/BUILD
index 8701c24..4ceba33 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/BUILD
@@ -41,6 +41,7 @@
"//src/main/java/com/google/devtools/build/lib/util",
"//src/main/java/com/google/devtools/build/lib/util:abrupt_exit_exception",
"//src/main/java/com/google/devtools/build/lib/util:command",
+ "//src/main/java/com/google/devtools/build/lib/util:describable_execution_unit",
"//src/main/java/com/google/devtools/build/lib/util:detailed_exit_code",
"//src/main/java/com/google/devtools/build/lib/util:os",
"//src/main/java/com/google/devtools/build/lib/util:process",
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxedSpawn.java b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxedSpawn.java
index 088924f..8c58418 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxedSpawn.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxedSpawn.java
@@ -14,8 +14,7 @@
package com.google.devtools.build.lib.sandbox;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.util.DescribableExecutionUnit;
import com.google.devtools.build.lib.vfs.Path;
import java.io.IOException;
import javax.annotation.Nullable;
@@ -27,16 +26,10 @@
* so that a process running inside the directory can access the files. It also handles moving the
* output files generated by the process out of the directory into a destination directory.
*/
-interface SandboxedSpawn {
+interface SandboxedSpawn extends DescribableExecutionUnit {
/** The path in which to execute the subprocess. */
Path getSandboxExecRoot();
- /** The command-line of the subprocess. */
- ImmutableList<String> getArguments();
-
- /** The environment variables to be set for the subprocess. */
- ImmutableMap<String, String> getEnvironment();
-
/** Returns {@code true}, if the runner should use the Subprocess timeout feature. */
default boolean useSubprocessTimeout() {
return false;