Move up discarding the analysis cache so that it is done prior to invoking executionPhaseStarting on any ActionContextProvider.
PiperOrigin-RevId: 258678792
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
index 187bead..980f015 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
@@ -321,6 +321,15 @@
Throwable catastrophe = null;
boolean buildCompleted = false;
try {
+ if (request.getViewOptions().discardAnalysisCache
+ || !skyframeExecutor.tracksStateForIncrementality()) {
+ // Free memory by removing cache entries that aren't going to be needed.
+ try (SilentCloseable c = Profiler.instance().profile("clearAnalysisCache")) {
+ env.getSkyframeBuildView()
+ .clearAnalysisCache(analysisResult.getTargetsToBuild(), analysisResult.getAspects());
+ }
+ }
+
for (ActionContextProvider actionContextProvider : actionContextProviders) {
try (SilentCloseable c =
Profiler.instance().profile(actionContextProvider + ".executionPhaseStarting")) {
@@ -334,15 +343,6 @@
}
skyframeExecutor.drainChangedFiles();
- if (request.getViewOptions().discardAnalysisCache
- || !skyframeExecutor.tracksStateForIncrementality()) {
- // Free memory by removing cache entries that aren't going to be needed.
- try (SilentCloseable c = Profiler.instance().profile("clearAnalysisCache")) {
- env.getSkyframeBuildView()
- .clearAnalysisCache(analysisResult.getTargetsToBuild(), analysisResult.getAspects());
- }
- }
-
try (SilentCloseable c = Profiler.instance().profile("configureResourceManager")) {
configureResourceManager(request);
}