You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2020/02/10 17:42:54 UTC

[hbase] branch branch-2 updated: HBASE-23824 TestSnapshotScannerHDFSAclController is flakey (#1157)

This is an automated email from the ASF dual-hosted git repository.

stack pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
     new 50eaa02  HBASE-23824 TestSnapshotScannerHDFSAclController is flakey (#1157)
50eaa02 is described below

commit 50eaa0293ed3ba38cb4c9a7f69cf1a9a0a75670b
Author: meiyi <my...@gmail.com>
AuthorDate: Tue Feb 11 01:40:05 2020 +0800

    HBASE-23824 TestSnapshotScannerHDFSAclController is flakey (#1157)
    
    
    Signed-off-by: stack <st...@apache.org>
---
 .../access/SnapshotScannerHDFSAclController.java   | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclController.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclController.java
index 82e3430..5c4ba0d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclController.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclController.java
@@ -222,9 +222,9 @@ public class SnapshotScannerHDFSAclController implements MasterCoprocessor, Mast
   }
 
   @Override
-  public void postDeleteTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
+  public void postCompletedDeleteTableAction(ObserverContext<MasterCoprocessorEnvironment> ctx,
       TableName tableName) throws IOException {
-    if (needHandleTableHdfsAcl(tableName, "deleteTable " + tableName)) {
+    if (!tableName.isSystemTable() && checkInitialized("deleteTable " + tableName)) {
       /*
        * Remove table user access HDFS acl from namespace directory if the user has no permissions
        * of global, ns of the table or other tables of the ns, eg: Bob has 'ns1:t1' read permission,
@@ -235,14 +235,16 @@ public class SnapshotScannerHDFSAclController implements MasterCoprocessor, Mast
       try (Table aclTable =
           ctx.getEnvironment().getConnection().getTable(PermissionStorage.ACL_TABLE_NAME)) {
         Set<String> users = SnapshotScannerHDFSAclStorage.getTableUsers(aclTable, tableName);
-        // 1. Remove table archive directory default ACLs
-        hdfsAclHelper.removeTableDefaultAcl(tableName, users);
-        // 2. Delete table owner permission is synced to HDFS in acl table
-        SnapshotScannerHDFSAclStorage.deleteTableHdfsAcl(aclTable, tableName);
-        // 3. Remove namespace access acls
-        Set<String> removeUsers = filterUsersToRemoveNsAccessAcl(aclTable, tableName, users);
-        if (removeUsers.size() > 0) {
-          hdfsAclHelper.removeNamespaceAccessAcl(tableName, removeUsers, "delete");
+        if (users.size() > 0) {
+          // 1. Remove table archive directory default ACLs
+          hdfsAclHelper.removeTableDefaultAcl(tableName, users);
+          // 2. Delete table owner permission is synced to HDFS in acl table
+          SnapshotScannerHDFSAclStorage.deleteTableHdfsAcl(aclTable, tableName);
+          // 3. Remove namespace access acls
+          Set<String> removeUsers = filterUsersToRemoveNsAccessAcl(aclTable, tableName, users);
+          if (removeUsers.size() > 0) {
+            hdfsAclHelper.removeNamespaceAccessAcl(tableName, removeUsers, "delete");
+          }
         }
       }
     }