Fix crash bug in SkyQuery rdeps when there's a dependency edge filter.
RELNOTES: None
PiperOrigin-RevId: 206368137
diff --git a/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
index 2df8008..cba76ba 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
@@ -458,13 +458,11 @@
/**
* Returns deps in the form of {@link SkyKey}s.
*
- * <p>The implementation of this method does not filter deps, therefore it is expected to be used
- * only when {@link SkyQueryEnvironment#dependencyFilter} is set to {@link
- * DependencyFilter#ALL_DEPS}.
+ * <p>The implementation of this method does not filter out deps due to disallowed edges,
+ * therefore callers are responsible for doing the right thing themselves.
*/
- public Multimap<SkyKey, SkyKey> getDirectDepsOfSkyKeys(Iterable<SkyKey> keys)
+ public Multimap<SkyKey, SkyKey> getUnfilteredDirectDepsOfSkyKeys(Iterable<SkyKey> keys)
throws InterruptedException {
- Preconditions.checkState(dependencyFilter == DependencyFilter.ALL_DEPS, dependencyFilter);
ImmutableMultimap.Builder<SkyKey, SkyKey> builder = ImmutableMultimap.builder();
graph.getDirectDeps(keys).forEach(builder::putAll);
return builder.build();
@@ -1192,7 +1190,7 @@
this, expression, depth, context, callback, packageSemaphore);
}
- protected QueryTaskFuture<Predicate<SkyKey>> getUniverseDTCSkyKeyPredicateFuture(
+ protected QueryTaskFuture<Predicate<SkyKey>> getUnfilteredUniverseDTCSkyKeyPredicateFuture(
QueryExpression universe, QueryExpressionContext<Target> context) {
return ParallelSkyQueryUtils.getDTCSkyKeyPredicateFuture(
this,
@@ -1210,9 +1208,9 @@
QueryExpressionContext<Target> context,
Callback<Target> callback) {
return transformAsync(
- getUniverseDTCSkyKeyPredicateFuture(universe, context),
- universePredicate -> ParallelSkyQueryUtils.getRdepsInUniverseUnboundedParallel(
- this, expression, universePredicate, context, callback, packageSemaphore));
+ getUnfilteredUniverseDTCSkyKeyPredicateFuture(universe, context),
+ unfilteredUniversePredicate -> ParallelSkyQueryUtils.getRdepsInUniverseUnboundedParallel(
+ this, expression, unfilteredUniversePredicate, context, callback, packageSemaphore));
}
@Override
@@ -1240,7 +1238,7 @@
QueryExpressionContext<Target> context,
Callback<Target> callback) {
return transformAsync(
- getUniverseDTCSkyKeyPredicateFuture(universe, context),
+ getUnfilteredUniverseDTCSkyKeyPredicateFuture(universe, context),
universePredicate -> ParallelSkyQueryUtils.getRdepsInUniverseBoundedParallel(
this, expression, depth, universePredicate, context, callback, packageSemaphore));
}