Add .bazelignore content to blacklisted subdirectories in cquery and aquery's
QueryEnvironment.
Fixes #7229.
Context: ConfiguredTargetQueryEnvironment and ActionGraphQueryEnvironment were not taking into account the content of .bazelignore file when getTargetsMatchingPattern. This caused a precondition check for recursive pkg lookup in RecursivePkgValueRootPackageExtractor to fail.
Changes:
- Get the blacklisted PathFragments from .bazelignore from the walkableGraph.
- Rm checkAllPathsAreUnder checks in GraphBackedRecursivePackageProvider, in the same manner it's handled in EnvironmentBackedRecursivePackageProvider.
RELNOTES: None
PiperOrigin-RevId: 240270920
diff --git a/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java
index 044db34..c193b1a 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java
@@ -53,6 +53,7 @@
import com.google.devtools.build.lib.query2.engine.ThreadSafeOutputFormatterCallback;
import com.google.devtools.build.lib.query2.engine.Uniquifier;
import com.google.devtools.build.lib.rules.AliasConfiguredTarget;
+import com.google.devtools.build.lib.skyframe.BlacklistedPackagePrefixesValue;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetValue;
import com.google.devtools.build.lib.skyframe.GraphBackedRecursivePackageProvider;
@@ -63,6 +64,7 @@
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.skyframe.TargetPatternValue;
import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey;
+import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.WalkableGraph;
import java.io.IOException;
@@ -226,6 +228,13 @@
return (ConfiguredTargetValue) walkableGraphSupplier.get().getValue(key);
}
+ ImmutableSet<PathFragment> getBlacklistedPackagePrefixesPathFragments()
+ throws InterruptedException {
+ return ((BlacklistedPackagePrefixesValue)
+ walkableGraphSupplier.get().getValue(BlacklistedPackagePrefixesValue.key()))
+ .getPatterns();
+ }
+
@Nullable
protected abstract T getValueFromKey(SkyKey key) throws InterruptedException;