You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2018/01/24 09:50:52 UTC
[10/34] hbase git commit: HBASE-19836 Fix
TestZooKeeper.testLogSplittingAfterMasterRecoveryDueToZKExpiry
HBASE-19836 Fix TestZooKeeper.testLogSplittingAfterMasterRecoveryDueToZKExpiry
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/86f4df5f
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/86f4df5f
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/86f4df5f
Branch: refs/heads/HBASE-19064
Commit: 86f4df5f74fc402b560f741e4dcd46ccaffab391
Parents: f3c563f
Author: zhangduo <zh...@apache.org>
Authored: Mon Jan 22 15:03:24 2018 +0800
Committer: zhangduo <zh...@apache.org>
Committed: Mon Jan 22 18:32:31 2018 +0800
----------------------------------------------------------------------
.../org/apache/hadoop/hbase/TestZooKeeper.java | 57 +++++++++-----------
1 file changed, 24 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/86f4df5f/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
index e03a9da..0bdcb3e 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestZooKeeper.java
@@ -29,7 +29,6 @@ import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.RegionInfo;
-import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
@@ -90,6 +89,7 @@ public class TestZooKeeper {
@After
public void after() throws Exception {
try {
+ TEST_UTIL.getHBaseCluster().waitForActiveAndReadyMaster(10000);
// Some regionserver could fail to delete its znode.
// So shutdown could hang. Let's kill them all instead.
TEST_UTIL.getHBaseCluster().killAll();
@@ -102,14 +102,14 @@ public class TestZooKeeper {
}
}
- @Test (timeout = 120000)
+ @Test
public void testRegionServerSessionExpired() throws Exception {
LOG.info("Starting " + name.getMethodName());
TEST_UTIL.expireRegionServerSession(0);
testSanity(name.getMethodName());
}
- @Test(timeout = 300000)
+ @Test
public void testMasterSessionExpired() throws Exception {
LOG.info("Starting " + name.getMethodName());
TEST_UTIL.expireMasterSession();
@@ -121,7 +121,7 @@ public class TestZooKeeper {
* test differs from {@link #testMasterSessionExpired} because here
* the master znode will exist in ZK.
*/
- @Test(timeout = 300000)
+ @Test
public void testMasterZKSessionRecoveryFailure() throws Exception {
LOG.info("Starting " + name.getMethodName());
MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();
@@ -160,7 +160,7 @@ public class TestZooKeeper {
* session. Without the HBASE-6046 fix master always tries to assign all the user regions by
* calling retainAssignment.
*/
- @Test(timeout = 300000)
+ @Test
public void testRegionAssignmentAfterMasterRecoveryDueToZKExpiry() throws Exception {
MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();
cluster.startRegionServer();
@@ -226,51 +226,42 @@ public class TestZooKeeper {
* Tests whether the logs are split when master recovers from a expired zookeeper session and an
* RS goes down.
*/
- @Test(timeout = 300000)
+ @Test
public void testLogSplittingAfterMasterRecoveryDueToZKExpiry() throws Exception {
MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();
cluster.startRegionServer();
- HMaster m = cluster.getMaster();
- // now the cluster is up. So assign some regions.
- Admin admin = TEST_UTIL.getAdmin();
- Table table = null;
- try {
+ TableName tableName = TableName.valueOf(name.getMethodName());
+ byte[] family = Bytes.toBytes("col");
+ try (Admin admin = TEST_UTIL.getAdmin()) {
byte[][] SPLIT_KEYS = new byte[][] { Bytes.toBytes("1"), Bytes.toBytes("2"),
- Bytes.toBytes("3"), Bytes.toBytes("4"), Bytes.toBytes("5") };
- TableDescriptor htd =
- TableDescriptorBuilder.newBuilder(TableName.valueOf(name.getMethodName()))
- .addColumnFamily(ColumnFamilyDescriptorBuilder.of("col")).build();
+ Bytes.toBytes("3"), Bytes.toBytes("4"), Bytes.toBytes("5") };
+ TableDescriptor htd = TableDescriptorBuilder.newBuilder(tableName)
+ .addColumnFamily(ColumnFamilyDescriptorBuilder.of(family)).build();
admin.createTable(htd, SPLIT_KEYS);
- TEST_UTIL.waitUntilNoRegionsInTransition(60000);
- table = TEST_UTIL.getConnection().getTable(htd.getTableName());
- Put p;
+ }
+ TEST_UTIL.waitUntilNoRegionsInTransition(60000);
+ HMaster m = cluster.getMaster();
+ try (Table table = TEST_UTIL.getConnection().getTable(tableName)) {
int numberOfPuts;
for (numberOfPuts = 0; numberOfPuts < 6; numberOfPuts++) {
- p = new Put(Bytes.toBytes(numberOfPuts));
+ Put p = new Put(Bytes.toBytes(numberOfPuts));
p.addColumn(Bytes.toBytes("col"), Bytes.toBytes("ql"),
- Bytes.toBytes("value" + numberOfPuts));
+ Bytes.toBytes("value" + numberOfPuts));
table.put(p);
}
- m.getZooKeeper().close();
m.abort("Test recovery from zk session expired",
new KeeperException.SessionExpiredException());
assertTrue(m.isStopped()); // Master doesn't recover any more
- cluster.getRegionServer(0).abort("Aborting");
+ cluster.killRegionServer(TEST_UTIL.getRSForFirstRegionInTable(tableName).getServerName());
// Without patch for HBASE-6046 this test case will always timeout
// with patch the test case should pass.
- Scan scan = new Scan();
int numberOfRows = 0;
- ResultScanner scanner = table.getScanner(scan);
- Result[] result = scanner.next(1);
- while (result != null && result.length > 0) {
- numberOfRows++;
- result = scanner.next(1);
+ try (ResultScanner scanner = table.getScanner(new Scan())) {
+ while (scanner.next() != null) {
+ numberOfRows++;
+ }
}
- assertEquals("Number of rows should be equal to number of puts.", numberOfPuts,
- numberOfRows);
- } finally {
- if (table != null) table.close();
- admin.close();
+ assertEquals("Number of rows should be equal to number of puts.", numberOfPuts, numberOfRows);
}
}