From bba83dc931a900e742afa1a376c6c3a83e72920c Mon Sep 17 00:00:00 2001 From: skysiders <64545691+skysiders@users.noreply.github.com> Date: Mon, 9 May 2022 04:26:53 +0800 Subject: [PATCH] HBASE-26994 MasterFileSystem create directory without permission check (#4391) Signed-off-by: Viraj Jasani --- .../hadoop/hbase/master/MasterFileSystem.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java index be46ac18219..5b210df4b26 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java @@ -330,16 +330,15 @@ public class MasterFileSystem { throw new IOException("HBase directory '" + p + "' creation failure."); } } - } else { - if (isSecurityEnabled && !dirPerms.equals(fs.getFileStatus(p).getPermission())) { - // check whether the permission match - LOG.warn("Found HBase directory permissions NOT matching expected permissions for " - + p.toString() + " permissions=" + fs.getFileStatus(p).getPermission() + ", expecting " - + dirPerms + ". Automatically setting the permissions. " - + "You can change the permissions by setting \"" + dirPermsConfName - + "\" in hbase-site.xml " + "and restarting the master"); - fs.setPermission(p, dirPerms); - } + } + if (isSecurityEnabled && !dirPerms.equals(fs.getFileStatus(p).getPermission())) { + // check whether the permission match + LOG.warn("Found HBase directory permissions NOT matching expected permissions for " + + p.toString() + " permissions=" + fs.getFileStatus(p).getPermission() + ", expecting " + + dirPerms + ". Automatically setting the permissions. " + + "You can change the permissions by setting \"" + dirPermsConfName + + "\" in hbase-site.xml " + "and restarting the master"); + fs.setPermission(p, dirPerms); } } @@ -354,9 +353,9 @@ public class MasterFileSystem { if (!this.fs.mkdirs(p, HiddenDirPerms)) { throw new IOException("Failed to create staging directory " + p.toString()); } - } else { - this.fs.setPermission(p, HiddenDirPerms); } + this.fs.setPermission(p, HiddenDirPerms); + } catch (IOException e) { LOG.error("Failed to create or set permission on staging directory " + p.toString()); throw new IOException(