aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-07-19 02:12:31 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-19 02:13:54 -0700
commit98670242d308595f9bc689781504176caa2e834b (patch)
tree39e36acb50213edc1ad9afe810b0ce67958a98e8 /src/main/java/com/google/devtools/build/lib/analysis
parent22aa4e55e309941e179efd6de3c5940c555222a5 (diff)
Ensure that gathering the info for an extra action can rely on the action
being executed if the action requires input discovery. Input discovery might actually change the action's command line, which in turn can become part of the file being written. RELNOTES: None. PiperOrigin-RevId: 205207109
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java
index 4b2ef4bacb..9b9e976db9 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/extra/ExtraActionInfoFileWriteAction.java
@@ -28,7 +28,6 @@ import com.google.devtools.build.lib.analysis.actions.ProtoDeterministicWriter;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.Fingerprint;
-import java.io.IOException;
/**
* Requests extra action info from shadowed action and writes it, in protocol buffer format, to an
@@ -43,14 +42,18 @@ public final class ExtraActionInfoFileWriteAction extends AbstractFileWriteActio
private final Action shadowedAction;
ExtraActionInfoFileWriteAction(ActionOwner owner, Artifact primaryOutput, Action shadowedAction) {
- super(owner, ImmutableList.<Artifact>of(), primaryOutput, false);
+ super(
+ owner,
+ shadowedAction.discoversInputs() ? shadowedAction.getOutputs() : ImmutableList.of(),
+ primaryOutput,
+ /*makeExecutable=*/ false);
this.shadowedAction = Preconditions.checkNotNull(shadowedAction, primaryOutput);
}
@Override
public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
- throws IOException, InterruptedException, ExecException {
+ throws ExecException {
try {
return new ProtoDeterministicWriter(
shadowedAction.getExtraActionInfo(ctx.getActionKeyContext()).build());