diff options
Diffstat (limited to 'src/main/java/com')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java | 14 |
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 = |