aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
diff options
context:
space:
mode:
authorGravatar Nathan Harmata <nharmata@google.com>2017-02-14 20:47:50 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2017-02-15 10:04:12 +0000
commitfee192875bf8bd0923953bf4f71e9b5561e2f224 (patch)
treed4940c28808ca4c22f9ddf944d6e61d65f0c5f91 /src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
parent49705e55efe32c109994e9eb7dbcc39b559d5baf (diff)
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
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java10
1 files changed, 10 insertions, 0 deletions
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 e757c27574..efdff45af3 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.Path;
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 @@ public class ExternalFilesHelper {
== 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(