From 124c3b57b42c8dff54aa85340263112cc39eeb01 Mon Sep 17 00:00:00 2001 From: Jaroslav Bachorik Date: Fri, 22 Nov 2024 18:25:39 +0100 Subject: [PATCH 1/2] Fix the temp location manager on J9 (due to a different mechanism to retrieve running JVM processes) --- .../datadog/profiling/controller/TempLocationManager.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller/TempLocationManager.java b/dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller/TempLocationManager.java index f82806f4ef0..cd02d486c1b 100644 --- a/dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller/TempLocationManager.java +++ b/dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller/TempLocationManager.java @@ -71,7 +71,7 @@ private class CleanupVisitor implements FileVisitor { private final Instant cutoff; private final Instant timeoutTarget; - private boolean terminated; + private boolean terminated = false; CleanupVisitor(boolean cleanSelf, long timeout, TimeUnit unit) { this.cleanSelf = cleanSelf; @@ -107,7 +107,8 @@ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) // the JFR repository directories are under /pid_ String pid = fileName.startsWith("pid_") ? fileName.substring(4) : null; boolean isSelfPid = pid != null && pid.equals(PidHelper.getPid()); - shouldClean |= (cleanSelf && isSelfPid) || (!cleanSelf && !pidSet.contains(pid)); + shouldClean |= + (cleanSelf && isSelfPid) || (!cleanSelf && !isSelfPid && !pidSet.contains(pid)); if (shouldClean) { log.debug("Cleaning temporary location {}", dir); } From ec5b89d7196d249f1cdb56db20c086e6903d4be9 Mon Sep 17 00:00:00 2001 From: Jaroslav Bachorik Date: Mon, 25 Nov 2024 09:01:06 +0100 Subject: [PATCH 2/2] Improve condition readability --- .../com/datadog/profiling/controller/TempLocationManager.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller/TempLocationManager.java b/dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller/TempLocationManager.java index cd02d486c1b..c749b555cdf 100644 --- a/dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller/TempLocationManager.java +++ b/dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller/TempLocationManager.java @@ -107,8 +107,7 @@ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) // the JFR repository directories are under /pid_ String pid = fileName.startsWith("pid_") ? fileName.substring(4) : null; boolean isSelfPid = pid != null && pid.equals(PidHelper.getPid()); - shouldClean |= - (cleanSelf && isSelfPid) || (!cleanSelf && !isSelfPid && !pidSet.contains(pid)); + shouldClean |= cleanSelf ? isSelfPid : !isSelfPid && !pidSet.contains(pid); if (shouldClean) { log.debug("Cleaning temporary location {}", dir); }