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' ");
}