aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
index 8ef183b00d..6e1b6c3e08 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java
@@ -389,11 +389,15 @@ public class ActionExecutionFunction implements SkyFunction, CompletionReceiver
// Sadly, even if we discovered inputs, sometimes the action runs and discovers more inputs.
// Technically, this means our pre-execution input discovery is buggy, but it turns out this
// is impractical to fix.
- // Any new inputs should already have been built -- this is a check that our input
- // discovery code is not missing too much. It may have to be removed if further input
- // discovery quirks are found.
- Preconditions.checkState(!env.valuesMissing(), "%s %s %s",
- action, metadataFoundDuringActionExecution, state);
+ if (env.valuesMissing()) {
+ // Any new inputs should already have been built -- this is a check that our input
+ // discovery code is not missing too much. It may have to be removed if further input
+ // discovery quirks are found.
+ Set<Artifact> missingArtifacts =
+ Maps.filterValues(metadataFoundDuringActionExecution, Predicates.isNull()).keySet();
+ throw new IllegalStateException(
+ "Missing artifacts: " + missingArtifacts + ", " + state + action);
+ }
Set<FileArtifactValue> knownMetadata =
ImmutableSet.copyOf(state.inputArtifactData.values());
ImmutableSet.Builder<Artifact> discoveredInputBuilder =