From fc459bae1a960df42e54e41e2ab07e4d8481ef54 Mon Sep 17 00:00:00 2001 From: chenqi Date: Fri, 19 Apr 2019 10:53:40 +0800 Subject: [PATCH] Fix too many dentry cache slab objs#7508. --- .../groupby/epinephelinae/LimitedTemporaryStorage.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/LimitedTemporaryStorage.java b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/LimitedTemporaryStorage.java index d9f5d1d21b69..3269d4753106 100644 --- a/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/LimitedTemporaryStorage.java +++ b/processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/LimitedTemporaryStorage.java @@ -54,6 +54,8 @@ public class LimitedTemporaryStorage implements Closeable private volatile boolean closed = false; + private boolean createdStorageDirectory = false; + public LimitedTemporaryStorage(File storageDirectory, long maxBytesUsed) { this.storageDirectory = storageDirectory; @@ -81,6 +83,9 @@ public LimitedOutputStream createFile() throws IOException } FileUtils.forceMkdir(storageDirectory); + if (!createdStorageDirectory) { + createdStorageDirectory = true; + } final File theFile = new File(storageDirectory, StringUtils.format("%08d.tmp", files.size())); final EnumSet openOptions = EnumSet.of( @@ -126,7 +131,7 @@ public void close() delete(file); } files.clear(); - if (storageDirectory.exists() && !storageDirectory.delete()) { + if (createdStorageDirectory && storageDirectory.exists() && !storageDirectory.delete()) { log.warn("Cannot delete storageDirectory: %s", storageDirectory); } }