Respect --noexperimental_check_output_files in FileSystemValueChecker. FileStateValues for output files can make their way into the Skyframe graph if a source file is symlink to an output file.
Also fix a bug where ExternalFilesHelper#isExternalFileSeen would always return true after returning true once in the past. This meant if an external file ever made its way into the Skyframe graph, we would always do a full graph scan at the beginning of each build (iow, we would always waste some CPU time doing nothing interesting).
--
MOS_MIGRATED_REVID=118190190
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 5e1cae3..da3bdad 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
@@ -686,7 +686,8 @@
new ActionCacheChecker(actionCache, env.getView().getArtifactFactory(), executionFilter,
verboseExplanations),
keepGoing, actualJobs,
- options.checkOutputFiles ? modifiedOutputFiles : ModifiedFileSet.NOTHING_MODIFIED,
+ request.getPackageCacheOptions().checkOutputFiles
+ ? modifiedOutputFiles : ModifiedFileSet.NOTHING_MODIFIED,
options.finalizeActions, fileCache, request.getBuildOptions().progressReportInterval);
}