diff --git llap-server/src/java/org/apache/hadoop/hive/llap/cache/FileCacheCleanupThread.java llap-server/src/java/org/apache/hadoop/hive/llap/cache/FileCacheCleanupThread.java index 1835dad291..af04f3b9e9 100644 --- llap-server/src/java/org/apache/hadoop/hive/llap/cache/FileCacheCleanupThread.java +++ 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 llap-server/src/java/org/apache/hadoop/hive/llap/cache/SerDeLowLevelCacheImpl.java llap-server/src/java/org/apache/hadoop/hive/llap/cache/SerDeLowLevelCacheImpl.java index a8f89efdc8..a84c42b0e3 100644 --- llap-server/src/java/org/apache/hadoop/hive/llap/cache/SerDeLowLevelCacheImpl.java +++ 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 {