Some minor logging improvements related to diff awareness:
(i) Log [the first 100] external [non external-repo] file paths when we encounter them in skyframe [when externalFileAction is not ASSUME_NON_EXISTENT_AND_IMMUTABLE_FOR_EXTERNAL_PATHS]. These caveats are to prevent log spam.
(ii) Fix grammar when logging the results of handleDiffsWithMissingDiffInformation in the case when all package paths have known diff information and we're merely checking external/output/external-repo files.
(iii) Log the purpose of each skyframe graph scan we do (see (ii)).
--
PiperOrigin-RevId: 147508404
MOS_MIGRATED_REVID=147508404
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java b/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
index e757c27..efdff45 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
@@ -24,13 +24,19 @@
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.build.skyframe.SkyFunction;
import java.io.IOException;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.logging.Logger;
/** Common utilities for dealing with paths outside the package roots. */
public class ExternalFilesHelper {
+ private static final Logger LOG = Logger.getLogger(ExternalFilesHelper.class.getName());
+ private static final int MAX_NUM_EXTERNAL_FILES_TO_LOG = 100;
+
private final AtomicReference<PathPackageLocator> pkgLocator;
private final ExternalFileAction externalFileAction;
private final BlazeDirectories directories;
+ private final AtomicInteger numExternalFilesLogged = new AtomicInteger(0);
// These variables are set to true from multiple threads, but only read in the main thread.
// So volatility or an AtomicBoolean is not needed.
@@ -179,6 +185,10 @@
== ExternalFileAction.ASSUME_NON_EXISTENT_AND_IMMUTABLE_FOR_EXTERNAL_PATHS) {
throw new NonexistentImmutableExternalFileException();
}
+ if (fileType == FileType.EXTERNAL
+ && numExternalFilesLogged.incrementAndGet() < MAX_NUM_EXTERNAL_FILES_TO_LOG) {
+ LOG.info("Encountered an external path " + rootedPath);
+ }
return;
}
Preconditions.checkState(