diff options
author | Klaus Aehlig <aehlig@google.com> | 2018-01-26 02:19:58 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-01-26 02:22:03 -0800 |
commit | fbdeffed9f2bd3f2eca1335c60fc04c82a2524a9 (patch) | |
tree | 403497a515479569e1003d93fa2b0cb2161a1314 /src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java | |
parent | 8e86b9b0aafcd294cb18b51fe3403d69b2f210f1 (diff) |
BEP: report analysis failure events
...as completion of the respective top-level targets. In this way,
a failure is associated to its root cause, even if the cause is at
analysis phase; in particular, visibility errors are correctly
associated.
For the time beeing, we associate visibility root causes only with
labels; it is planned to change that to the more accurate configured
labels in a follow-up change.
Change-Id: I04121a7cd2099fc65171eae0719fd77b98aef09b
PiperOrigin-RevId: 183359798
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java index 118a636294..f20c99ab6b 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java @@ -48,6 +48,7 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection; import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider; import com.google.devtools.build.lib.analysis.config.FragmentClassSet; +import com.google.devtools.build.lib.buildeventstream.BuildEventId; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.events.Event; @@ -329,6 +330,7 @@ public final class SkyframeBuildView { eventHandler); Exception cause = errorInfo.getException(); Label analysisRootCause = null; + BuildEventId configuration = null; if (cause instanceof ConfiguredValueCreationException) { ConfiguredValueCreationException ctCause = (ConfiguredValueCreationException) cause; for (Label rootCause : ctCause.getRootCauses()) { @@ -336,6 +338,7 @@ public final class SkyframeBuildView { eventBus.post(new LoadingFailureEvent(topLevelLabel, rootCause)); } analysisRootCause = ctCause.getAnalysisRootCause(); + configuration = ctCause.getConfiguration(); } else if (!Iterables.isEmpty(errorInfo.getCycleInfo())) { analysisRootCause = maybeGetConfiguredTargetCycleCulprit( topLevelLabel, errorInfo.getCycleInfo()); @@ -350,6 +353,7 @@ public final class SkyframeBuildView { new AnalysisFailureEvent( ConfiguredTargetKey.of( topLevelLabel, label.getConfigurationKey(), label.isHostConfiguration()), + configuration, analysisRootCause)); } } |