Encode some execution failures with FailureDetails
Encodes failures in WorkspaceStatus and JavaCompile actions, and
ActionRewindStrategy, with FailureDetails. Removes one undetailed
ActionExecutionException overload.
RELNOTES: None.
PiperOrigin-RevId: 315339908
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
index 30e86d5..91c8873 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestUtil.java
@@ -50,6 +50,7 @@
import com.google.devtools.build.lib.shell.Command;
import com.google.devtools.build.lib.syntax.StarlarkSemantics;
import com.google.devtools.build.lib.testutil.TestConstants;
+import com.google.devtools.build.lib.util.CrashFailureDetails;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -244,7 +245,8 @@
FileSystemUtils.writeContent(
actionExecutionContext.getInputPath(volatileStatus), new byte[] {});
} catch (IOException e) {
- throw new ActionExecutionException(e, this, true);
+ throw new ActionExecutionException(
+ e, this, true, CrashFailureDetails.detailedExitCodeForThrowable(e));
}
return ActionResult.EMPTY;
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD b/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD
index 0723ee0..644b8d2 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BUILD
@@ -111,6 +111,7 @@
"//src/main/java/com/google/devtools/build/lib/skyframe:unloaded_toolchain_context",
"//src/main/java/com/google/devtools/build/lib/skyframe/packages:PackageFactoryBuilderWithSkyframeForTesting",
"//src/main/java/com/google/devtools/build/lib/util",
+ "//src/main/java/com/google/devtools/build/lib/util:crash_failure_details",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
"//src/main/java/com/google/devtools/build/lib/util:string",
"//src/main/java/com/google/devtools/build/lib/util/io",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
index d97bbd7..cf471d2 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -236,6 +236,7 @@
"//src/main/java/net/starlark/java/annot",
"//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:crash_failure_details",
"//src/main/java/com/google/devtools/build/lib/util:detailed_exit_code",
"//src/main/java/com/google/devtools/build/lib/util:filetype",
"//src/main/java/com/google/devtools/build/lib/util/io",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorTest.java
index 17c3fcf..130acba 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutorTest.java
@@ -121,6 +121,7 @@
import com.google.devtools.build.lib.syntax.StarlarkSemantics;
import com.google.devtools.build.lib.testutil.MoreAsserts;
import com.google.devtools.build.lib.testutil.TestUtils;
+import com.google.devtools.build.lib.util.CrashFailureDetails;
import com.google.devtools.build.lib.util.DetailedExitCode;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor;
@@ -1459,7 +1460,8 @@
try {
FileSystemUtils.createEmptyFile(actionExecutionContext.getInputPath(getPrimaryOutput()));
} catch (IOException e) {
- throw new ActionExecutionException(e, this, false);
+ throw new ActionExecutionException(
+ e, this, false, CrashFailureDetails.detailedExitCodeForThrowable(e));
}
return ActionResult.EMPTY;
}
@@ -1880,7 +1882,10 @@
@Override
public Void call() throws ActionExecutionException {
throw new ActionExecutionException(
- new Exception(), failedActionReference.get(), /*catastrophe=*/ false);
+ new Exception(),
+ failedActionReference.get(),
+ /*catastrophe=*/ false,
+ USER_DETAILED_EXIT_CODE);
}
},
NestedSetBuilder.emptySet(Order.STABLE_ORDER),
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeAwareActionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeAwareActionTest.java
index 4374c38..1c96330 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeAwareActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkyframeAwareActionTest.java
@@ -36,6 +36,7 @@
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.testutil.TimestampGranularityUtils;
+import com.google.devtools.build.lib.util.CrashFailureDetails;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -201,7 +202,8 @@
try (InputStream in = getInputs().getSingleton().getPath().getInputStream()) {
inputLen = in.read(input);
} catch (IOException e) {
- throw new ActionExecutionException(e, this, false);
+ throw new ActionExecutionException(
+ e, this, false, CrashFailureDetails.detailedExitCodeForThrowable(e));
}
// This action then writes the contents of the input to the (only) output file, and appends an
@@ -210,7 +212,8 @@
out.write(input, 0, inputLen);
out.write('x');
} catch (IOException e) {
- throw new ActionExecutionException(e, this, false);
+ throw new ActionExecutionException(
+ e, this, false, CrashFailureDetails.detailedExitCodeForThrowable(e));
}
return ActionResult.EMPTY;
}
@@ -696,7 +699,8 @@
try (InputStream in = getPrimaryInput().getPath().getInputStream()) {
inputLen = in.read(input, 0, input.length);
} catch (IOException e) {
- throw new ActionExecutionException(e, this, false);
+ throw new ActionExecutionException(
+ e, this, false, CrashFailureDetails.detailedExitCodeForThrowable(e));
}
return new Buffer(input, inputLen);
}
@@ -708,7 +712,8 @@
}
out.write(data.getBytes(StandardCharsets.UTF_8), 0, data.length());
} catch (IOException e) {
- throw new ActionExecutionException(e, this, false);
+ throw new ActionExecutionException(
+ e, this, false, CrashFailureDetails.detailedExitCodeForThrowable(e));
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
index 4a11445..70ceece 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactBuildTest.java
@@ -56,6 +56,7 @@
import com.google.devtools.build.lib.skyframe.ActionTemplateExpansionValue.ActionTemplateExpansionKey;
import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester;
import com.google.devtools.build.lib.testutil.TestUtils;
+import com.google.devtools.build.lib.util.CrashFailureDetails;
import com.google.devtools.build.lib.vfs.FileStatus;
import com.google.devtools.build.lib.vfs.FileSystem;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
@@ -849,7 +850,8 @@
try {
run(context);
} catch (IOException e) {
- throw new ActionExecutionException(e, this, /*catastrophe=*/ false);
+ throw new ActionExecutionException(
+ e, this, /*catastrophe=*/ false, CrashFailureDetails.detailedExitCodeForThrowable(e));
}
return ActionResult.EMPTY;
}