diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ShutdownHook.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ShutdownHook.java index b5f37e85381..83e4ea86be5 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ShutdownHook.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/ShutdownHook.java @@ -199,10 +199,11 @@ public class ShutdownHook { throw new RuntimeException("Client finalizer is null, can't suppress!"); } synchronized (fsShutdownHooks) { - if (!fsShutdownHooks.containsKey(hdfsClientFinalizer) && - !ShutdownHookManager.deleteShutdownHook(hdfsClientFinalizer)) { - throw new RuntimeException("Failed suppression of fs shutdown hook: " + - hdfsClientFinalizer); + boolean isFSCacheDisabled = fs.getConf().getBoolean("fs.hdfs.impl.disable.cache", false); + if (!isFSCacheDisabled && !fsShutdownHooks.containsKey(hdfsClientFinalizer) + && !ShutdownHookManager.deleteShutdownHook(hdfsClientFinalizer)) { + throw new RuntimeException( + "Failed suppression of fs shutdown hook: " + hdfsClientFinalizer); } Integer refs = fsShutdownHooks.get(hdfsClientFinalizer); fsShutdownHooks.put(hdfsClientFinalizer, refs == null ? 1 : refs + 1);