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/04/04 20:15:25 UTC
[hbase] branch branch-2 updated: HBASE-24114 [Flakey Tests]
TestSnapshotScannerHDFSAclController
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 93c3653 HBASE-24114 [Flakey Tests] TestSnapshotScannerHDFSAclController
93c3653 is described below
commit 93c3653ecfbf017f30084ce6e7a3abcd46021403
Author: Huaxiang Sun <hu...@apache.com>
AuthorDate: Fri Apr 3 17:58:45 2020 -0700
HBASE-24114 [Flakey Tests] TestSnapshotScannerHDFSAclController
---
.../TestSnapshotScannerHDFSAclController.java | 65 ++++++++++++----------
1 file changed, 37 insertions(+), 28 deletions(-)
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestSnapshotScannerHDFSAclController.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestSnapshotScannerHDFSAclController.java
index 0b4229a..375c4a9 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestSnapshotScannerHDFSAclController.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestSnapshotScannerHDFSAclController.java
@@ -49,6 +49,7 @@ import org.apache.hadoop.hbase.testclassification.LargeTests;
import org.apache.hadoop.hbase.testclassification.SecurityTests;
import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.util.HFileArchiveUtil;
+import org.apache.hadoop.hbase.util.Threads;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
@@ -139,6 +140,13 @@ public class TestSnapshotScannerHDFSAclController {
TEST_UTIL.shutdownMiniCluster();
}
+ private void snapshotAndWait(final String snapShotName, final TableName tableName)
+ throws Exception{
+ admin.snapshot(snapShotName, tableName);
+ LOG.info("Sleep for one second, waiting for HDFS Acl setup");
+ Threads.sleep(1000);
+ }
+
@Test
public void testGrantGlobal1() throws Exception {
final String grantUserName = name.getMethodName();
@@ -149,7 +157,7 @@ public class TestSnapshotScannerHDFSAclController {
String snapshot2 = namespace + "s2";
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table);
- admin.snapshot(snapshot1, table);
+ snapshotAndWait(snapshot1, table);
// grant G(R)
SecureTestUtil.grantGlobal(TEST_UTIL, grantUserName, READ);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot1, 6);
@@ -167,7 +175,7 @@ public class TestSnapshotScannerHDFSAclController {
SecureTestUtil.grantGlobal(TEST_UTIL, grantUserName, READ);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot1, 6);
// take a snapshot and ACLs are inherited automatically
- admin.snapshot(snapshot2, table);
+ snapshotAndWait(snapshot2, table);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot2, 6);
assertTrue(hasUserGlobalHdfsAcl(aclTable, grantUserName));
deleteTable(table);
@@ -188,7 +196,7 @@ public class TestSnapshotScannerHDFSAclController {
SecureTestUtil.grantGlobal(TEST_UTIL, grantUserName, READ);
// create table in namespace1 and snapshot
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table1);
- admin.snapshot(snapshot1, table1);
+ snapshotAndWait(snapshot1, table1);
admin.grant(new UserPermission(grantUserName,
Permission.newBuilder(namespace1).withActions(READ).build()),
false);
@@ -196,7 +204,7 @@ public class TestSnapshotScannerHDFSAclController {
SecureTestUtil.grantGlobal(TEST_UTIL, grantUserName, WRITE);
// create table in namespace2 and snapshot
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table2);
- admin.snapshot(snapshot2, table2);
+ snapshotAndWait(snapshot2, table2);
// check scan snapshot
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot1, 6);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot2, -1);
@@ -223,12 +231,12 @@ public class TestSnapshotScannerHDFSAclController {
SecureTestUtil.grantGlobal(TEST_UTIL, grantUserName, READ);
// grant table1(R)
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table1);
- admin.snapshot(snapshot1, table1);
+ snapshotAndWait(snapshot1, table1);
TestHDFSAclHelper.grantOnTable(TEST_UTIL, grantUserName, table1, READ);
// grant G(W)
SecureTestUtil.grantGlobal(TEST_UTIL, grantUserName, WRITE);
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table2);
- admin.snapshot(snapshot2, table2);
+ snapshotAndWait(snapshot2, table2);
// check scan snapshot
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot1, 6);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot2, -1);
@@ -255,12 +263,12 @@ public class TestSnapshotScannerHDFSAclController {
// create table1 and snapshot
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table1);
- admin.snapshot(snapshot1, table1);
+ snapshotAndWait(snapshot1, table1);
// grant N(R)
SecureTestUtil.grantOnNamespace(TEST_UTIL, grantUserName, namespace, READ);
// create table2 and snapshot, ACLs can be inherited automatically
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table2);
- admin.snapshot(snapshot2, table2);
+ snapshotAndWait(snapshot2, table2);
// check scan snapshot
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot1, 6);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot2, 6);
@@ -287,7 +295,7 @@ public class TestSnapshotScannerHDFSAclController {
// create table1 and snapshot
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table1);
- admin.snapshot(snapshot1, table1);
+ snapshotAndWait(snapshot1, table1);
// grant N(R)
SecureTestUtil.grantOnNamespace(TEST_UTIL, grantUserName, namespace, READ);
@@ -314,7 +322,7 @@ public class TestSnapshotScannerHDFSAclController {
// create table1 and snapshot
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table);
- admin.snapshot(snapshot, table);
+ snapshotAndWait(snapshot, table);
// grant namespace(R)
SecureTestUtil.grantOnNamespace(TEST_UTIL, grantUserName, namespace, READ);
// grant global(R)
@@ -343,7 +351,7 @@ public class TestSnapshotScannerHDFSAclController {
LOG.info("Create table");
try (Table t = TestHDFSAclHelper.createTable(TEST_UTIL, table1)) {
TestHDFSAclHelper.put(t);
- admin.snapshot(snapshot1, table1);
+ snapshotAndWait(snapshot1, table1);
// table owner can scan table snapshot
LOG.info("Scan snapshot");
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL,
@@ -356,7 +364,8 @@ public class TestSnapshotScannerHDFSAclController {
// grant table1(R)
TestHDFSAclHelper.grantOnTable(TEST_UTIL, grantUserName, table1, READ);
TestHDFSAclHelper.put2(t);
- admin.snapshot(snapshot2, table1);
+ snapshotAndWait(snapshot2, table1);
+
// check scan snapshot
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot1, 6);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot2, 10);
@@ -389,7 +398,7 @@ public class TestSnapshotScannerHDFSAclController {
try (Table t = TestHDFSAclHelper.createMobTable(TEST_UTIL, table)) {
TestHDFSAclHelper.put(t);
- admin.snapshot(snapshot, table);
+ snapshotAndWait(snapshot, table);
TestHDFSAclHelper.grantOnTable(TEST_UTIL, grantUserName, table, READ);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot, 6);
assertTrue(hasUserTableHdfsAcl(aclTable, grantUserName, table));
@@ -407,7 +416,7 @@ public class TestSnapshotScannerHDFSAclController {
String snapshot1 = namespace + "t1";
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table1);
- admin.snapshot(snapshot1, table1);
+ snapshotAndWait(snapshot1, table1);
SecureTestUtil.grantGlobal(TEST_UTIL, grantUserName, READ);
SecureTestUtil.revokeGlobal(TEST_UTIL, grantUserName, READ);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot1, -1);
@@ -425,7 +434,7 @@ public class TestSnapshotScannerHDFSAclController {
String snapshot1 = namespace + "s1";
TableName table1 = TableName.valueOf(namespace, name.getMethodName());
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table1);
- admin.snapshot(snapshot1, table1);
+ snapshotAndWait(snapshot1, table1);
// grant G(R), grant N(R), grant T(R) -> revoke G(R)
SecureTestUtil.grantGlobal(TEST_UTIL, grantUserName, READ);
@@ -450,7 +459,7 @@ public class TestSnapshotScannerHDFSAclController {
TableName table1 = TableName.valueOf(namespace, name.getMethodName());
String snapshot1 = namespace + "t1";
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table1);
- admin.snapshot(snapshot1, table1);
+ snapshotAndWait(snapshot1, table1);
// grant G(R), grant T(R) -> revoke G(R)
SecureTestUtil.grantGlobal(TEST_UTIL, grantUserName, READ);
@@ -475,7 +484,7 @@ public class TestSnapshotScannerHDFSAclController {
TableName table1 = TableName.valueOf(namespace, name.getMethodName());
String snapshot1 = namespace + "s1";
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table1);
- admin.snapshot(snapshot1, table1);
+ snapshotAndWait(snapshot1, table1);
// revoke N(R)
SecureTestUtil.grantOnNamespace(TEST_UTIL, grantUserName, namespace, READ);
@@ -504,7 +513,7 @@ public class TestSnapshotScannerHDFSAclController {
TableName table = TableName.valueOf(namespace, name.getMethodName());
String snapshot = namespace + "s1";
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table);
- admin.snapshot(snapshot, table);
+ snapshotAndWait(snapshot, table);
// grant N(R), grant T(R) -> revoke N(R)
SecureTestUtil.grantOnNamespace(TEST_UTIL, grantUserName, namespace, READ);
@@ -528,7 +537,7 @@ public class TestSnapshotScannerHDFSAclController {
TableName table = TableName.valueOf(namespace, name.getMethodName());
String snapshot = namespace + "t1";
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table);
- admin.snapshot(snapshot, table);
+ snapshotAndWait(snapshot, table);
// grant T(R) -> revoke table family
TestHDFSAclHelper.grantOnTable(TEST_UTIL, grantUserName, table, READ);
@@ -553,7 +562,7 @@ public class TestSnapshotScannerHDFSAclController {
TableName table = TableName.valueOf(namespace, name.getMethodName());
String snapshot = namespace + "t1";
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table);
- admin.snapshot(snapshot, table);
+ snapshotAndWait(snapshot, table);
// grant T(R), grant N(R) -> revoke T(R)
TestHDFSAclHelper.grantOnTable(TEST_UTIL, grantUserName, table, READ);
@@ -575,7 +584,7 @@ public class TestSnapshotScannerHDFSAclController {
TableName table = TableName.valueOf(namespace, name.getMethodName());
String snapshot = namespace + "t1";
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table);
- admin.snapshot(snapshot, table);
+ snapshotAndWait(snapshot, table);
// grant T(R), grant G(R) -> revoke T(R)
TestHDFSAclHelper.grantOnTable(TEST_UTIL, grantUserName, table, READ);
@@ -603,7 +612,7 @@ public class TestSnapshotScannerHDFSAclController {
try (Table t = TestHDFSAclHelper.createTable(TEST_UTIL, tableName)) {
TestHDFSAclHelper.put(t);
// snapshot
- admin.snapshot(snapshot, tableName);
+ snapshotAndWait(snapshot, tableName);
// grant user2 namespace permission
SecureTestUtil.grantOnNamespace(TEST_UTIL, grantUserName2, namespace, READ);
// grant user table permission
@@ -613,7 +622,7 @@ public class TestSnapshotScannerHDFSAclController {
admin.truncateTable(tableName, true);
TestHDFSAclHelper.put2(t);
// snapshot
- admin.snapshot(snapshot2, tableName);
+ snapshotAndWait(snapshot2, tableName);
// check scan snapshot
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot, 6);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser2, snapshot, 6);
@@ -640,7 +649,7 @@ public class TestSnapshotScannerHDFSAclController {
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table);
// snapshot
- admin.snapshot(snapshot1, table);
+ snapshotAndWait(snapshot1, table);
// grant user table permission
TestHDFSAclHelper.grantOnTable(TEST_UTIL, grantUserName1, table, READ);
SecureTestUtil.grantOnNamespace(TEST_UTIL, grantUserName2, namespace, READ);
@@ -675,7 +684,7 @@ public class TestSnapshotScannerHDFSAclController {
String snapshot = namespace + "t1";
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table);
// snapshot
- admin.snapshot(snapshot, table);
+ snapshotAndWait(snapshot, table);
// grant namespace permission
SecureTestUtil.grantOnNamespace(TEST_UTIL, grantUserName, namespace, READ);
// delete table
@@ -704,7 +713,7 @@ public class TestSnapshotScannerHDFSAclController {
String snapshot = namespace + "t1";
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table);
- admin.snapshot(snapshot, table);
+ snapshotAndWait(snapshot, table);
TestHDFSAclHelper.grantOnTable(TEST_UTIL, grantUserName, table, READ);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot, 6);
@@ -748,7 +757,7 @@ public class TestSnapshotScannerHDFSAclController {
TestHDFSAclHelper.createNamespace(TEST_UTIL, namespace);
SecureTestUtil.grantOnNamespace(TEST_UTIL, nsUserName, namespace, READ);
TableDescriptor td = TestHDFSAclHelper.createUserScanSnapshotDisabledTable(TEST_UTIL, table);
- admin.snapshot(snapshot, table);
+ snapshotAndWait(snapshot, table);
SecureTestUtil.grantGlobal(TEST_UTIL, globalUserName2, READ);
TestHDFSAclHelper.grantOnTable(TEST_UTIL, tableUserName, table, READ);
SecureTestUtil.grantOnTable(TEST_UTIL, tableUserName2, table, TestHDFSAclHelper.COLUMN1, null,
@@ -896,7 +905,7 @@ public class TestSnapshotScannerHDFSAclController {
// create table1 and snapshot
TestHDFSAclHelper.createTableAndPut(TEST_UTIL, table);
aclTable = TEST_UTIL.getConnection().getTable(PermissionStorage.ACL_TABLE_NAME);
- admin.snapshot(snapshot, table);
+ snapshotAndWait(snapshot, table);
TestHDFSAclHelper.canUserScanSnapshot(TEST_UTIL, grantUser, snapshot, 6);
deleteTable(table);
deleteTable(table2);