Skip to content

Commit 2f6f74e

Browse files
committed
Exclude JFR repository from temp files self-cleanup
(cherry picked from commit a770911)
1 parent 6e98a97 commit 2f6f74e

File tree

1 file changed

+9
-2
lines changed
  • dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller

1 file changed

+9
-2
lines changed

dd-java-agent/agent-profiling/profiling-controller/src/main/java/com/datadog/profiling/controller/TempLocationManager.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.Set;
1919
import java.util.concurrent.CountDownLatch;
2020
import java.util.concurrent.TimeUnit;
21+
import java.util.regex.Pattern;
2122
import java.util.stream.Stream;
2223
import org.slf4j.Logger;
2324
import org.slf4j.LoggerFactory;
@@ -30,8 +31,9 @@
3031
*/
3132
public final class TempLocationManager {
3233
private static final Logger log = LoggerFactory.getLogger(TempLocationManager.class);
33-
// accessible to tests
34-
static final String TEMPDIR_PREFIX = "pid_";
34+
private static final Pattern JFR_DIR_PATTERN =
35+
Pattern.compile("\\d{4}_\\d{2}_\\d{2}_\\d{2}_\\d{2}_\\d{2}_\\d{6}");
36+
private static final String TEMPDIR_PREFIX = "pid_";
3537

3638
private static final class SingletonHolder {
3739
private static final TempLocationManager INSTANCE = new TempLocationManager();
@@ -100,6 +102,11 @@ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
100102
terminated = true;
101103
return FileVisitResult.TERMINATE;
102104
}
105+
if (cleanSelf && JFR_DIR_PATTERN.matcher(dir.getFileName().toString()).matches()) {
106+
// do not delete JFR repository on 'self-cleanup' - it conflicts with the JFR's own cleanup
107+
return FileVisitResult.SKIP_SUBTREE;
108+
}
109+
103110
cleanupTestHook.preVisitDirectory(dir, attrs);
104111

105112
if (dir.equals(baseTempDir)) {

0 commit comments

Comments
 (0)