You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bu...@apache.org on 2018/08/20 01:55:12 UTC

[3/4] hbase git commit: HBASE-17861: Regionserver down when checking the permission of staging dir if hbase.rootdir is on S3

HBASE-17861: Regionserver down when checking the permission of staging dir if hbase.rootdir is on S3

Signed-off-by: tedyu <yu...@gmail.com>
(cherry picked from commit 4057a6c89c74c9f595cb51ac3bdc288396a0b257)

 Conflicts:
	hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0466474d
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0466474d
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0466474d

Branch: refs/heads/branch-1.2
Commit: 0466474d845413b4145e4602028ca49bf20130a4
Parents: 2676d49
Author: Yi Liang <ea...@gmail.com>
Authored: Mon Apr 3 20:39:35 2017 -0700
Committer: Sean Busbey <bu...@apache.org>
Committed: Fri Aug 17 23:21:16 2018 -0500

----------------------------------------------------------------------
 .../hbase/security/access/SecureBulkLoadEndpoint.java   | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/0466474d/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java
index 5db3fe1..fae1e2d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java
@@ -145,16 +145,20 @@ public class SecureBulkLoadEndpoint extends SecureBulkLoadService
     Set<String> fsSet = getFileSystemSchemesWithoutPermissionSupport(conf);
 
     try {
-      fs = FileSystem.get(conf);
-      fs.mkdirs(baseStagingDir, PERM_HIDDEN);
-      fs.setPermission(baseStagingDir, PERM_HIDDEN);
+      fs = baseStagingDir.getFileSystem(conf);
+      if (!fs.exists(baseStagingDir)) {
+        fs.mkdirs(baseStagingDir, PERM_HIDDEN);
+      } else {
+        fs.setPermission(baseStagingDir, PERM_HIDDEN);
+      }
       //no sticky bit in hadoop-1.0, making directory nonempty so it never gets erased
       fs.mkdirs(new Path(baseStagingDir,"DONOTERASE"), PERM_HIDDEN);
       FileStatus status = fs.getFileStatus(baseStagingDir);
       if(status == null) {
         throw new IllegalStateException("Failed to create staging directory");
       }
-      if(!status.getPermission().equals(PERM_HIDDEN)) {
+      String scheme = fs.getScheme().toLowerCase();
+      if (!fsSet.contains(scheme) && !status.getPermission().equals(PERM_HIDDEN)) {
         throw new IllegalStateException(
             "Staging directory of " + baseStagingDir + " already exists but permissions aren't set to '-rwx--x--x' ");
       }