diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/cache/FileCacheCleanupThread.java b/llap-server/src/java/org/apache/hadoop/hive/llap/cache/FileCacheCleanupThread.java index 1835dad291..af04f3b9e9 100644 --- a/llap-server/src/java/org/apache/hadoop/hive/llap/cache/FileCacheCleanupThread.java +++ b/llap-server/src/java/org/apache/hadoop/hive/llap/cache/FileCacheCleanupThread.java @@ -38,7 +38,7 @@ public FileCacheCleanupThread(String name, ConcurrentHashMap 0) break; + + // will be notified by SerDeLowLevelCacheImpl or timeout eventually synchronized (newEvictions) { newEvictions.wait(10000); } diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/cache/SerDeLowLevelCacheImpl.java b/llap-server/src/java/org/apache/hadoop/hive/llap/cache/SerDeLowLevelCacheImpl.java index a8f89efdc8..c41b34ab83 100644 --- a/llap-server/src/java/org/apache/hadoop/hive/llap/cache/SerDeLowLevelCacheImpl.java +++ b/llap-server/src/java/org/apache/hadoop/hive/llap/cache/SerDeLowLevelCacheImpl.java @@ -661,6 +661,11 @@ private void unlockBuffer(LlapSerDeDataBuffer buffer, boolean handleLastDecRef) public final void notifyEvicted(MemoryBuffer buffer) { newEvictions.incrementAndGet(); + + // FileCacheCleanupThread might we waiting for eviction increment + synchronized(newEvictions) { + newEvictions.notifyAll(); + } } private final class CleanupThread extends FileCacheCleanupThread {