HBASE-11517 TestReplicaWithCluster turns zombie (Mikhail Antonov)

This commit is contained in:
stack 2014-07-16 13:53:20 -07:00
parent 76543f525a
commit 688877606b
1 changed files with 30 additions and 38 deletions

View File

@ -65,6 +65,9 @@ public class TestReplicaWithCluster {
private static final int NB_SERVERS = 2;
private static final byte[] row = TestReplicaWithCluster.class.getName().getBytes();
private static final HBaseTestingUtility HTU = new HBaseTestingUtility();
// second minicluster used in testing of replication
private static HBaseTestingUtility HTU2;
private static final byte[] f = HConstants.CATALOG_FAMILY;
private final static int REFRESH_PERIOD = 1000;
@ -126,6 +129,7 @@ public class TestReplicaWithCluster {
@AfterClass
public static void afterClass() throws Exception {
HTU2.shutdownMiniCluster();
HTU.shutdownMiniCluster();
}
@ -210,17 +214,13 @@ public class TestReplicaWithCluster {
HTU.getHBaseCluster().stopMaster(0);
HBaseAdmin admin = new HBaseAdmin(HTU.getConfiguration());
try {
nHdt = admin.getTableDescriptor(hdt.getTableName());
Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),
nHdt =admin.getTableDescriptor(hdt.getTableName());
Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),
bHdt.getColumnFamilies().length + 1, nHdt.getColumnFamilies().length);
admin.disableTable(hdt.getTableName());
admin.deleteTable(hdt.getTableName());
HTU.getHBaseCluster().startMaster();
} finally {
if (admin != null) admin.close();
}
admin.disableTable(hdt.getTableName());
admin.deleteTable(hdt.getTableName());
HTU.getHBaseCluster().startMaster();
}
@Test (timeout=30000)
@ -239,30 +239,27 @@ public class TestReplicaWithCluster {
conf2.set(HConstants.HBASE_CLIENT_INSTANCE_ID, String.valueOf(-1));
conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");
MiniZooKeeperCluster miniZK = HTU.getZkCluster();
HBaseTestingUtility HTU2 = new HBaseTestingUtility(conf2);
HTU2 = new HBaseTestingUtility(conf2);
HTU2.setZkCluster(miniZK);
HTU2.startMiniCluster(NB_SERVERS);
LOG.info("Setup second Zk");
HTU2.getHBaseAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);
ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());
try {
admin.addPeer("2", HTU2.getClusterKey());
} finally {
if (admin != null) admin.close();
}
admin.addPeer("2", HTU2.getClusterKey());
Put p = new Put(row);
p.add(row, row, row);
final HTable table = new HTable(HTU.getConfiguration(), hdt.getTableName());
try {
table.put(p);
HTU.getHBaseAdmin().flush(table.getTableName());
LOG.info("Put & flush done on the first cluster. Now doing a get on the same cluster.");
table.put(p);
Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate<Exception>() {
@Override
public boolean evaluate() throws Exception {
HTU.getHBaseAdmin().flush(table.getTableName());
LOG.info("Put & flush done on the first cluster. Now doing a get on the same cluster.");
Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate<Exception>() {
@Override
public boolean evaluate() throws Exception {
try {
SlowMeCopro.cdl.set(new CountDownLatch(1));
Get g = new Get(row);
@ -273,18 +270,15 @@ public class TestReplicaWithCluster {
} finally {
SlowMeCopro.cdl.get().countDown();
SlowMeCopro.sleepTime.set(0);
}
}});
} finally {
if (table != null) table.close();
}
} }
});
LOG.info("stale get on the first cluster done. Now for the second.");
final HTable table2 = new HTable(HTU.getConfiguration(), hdt.getTableName());
try {
Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate<Exception>() {
@Override
public boolean evaluate() throws Exception {
Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate<Exception>() {
@Override
public boolean evaluate() throws Exception {
try {
SlowMeCopro.cdl.set(new CountDownLatch(1));
Get g = new Get(row);
@ -295,11 +289,8 @@ public class TestReplicaWithCluster {
} finally {
SlowMeCopro.cdl.get().countDown();
SlowMeCopro.sleepTime.set(0);
}
}});
} finally {
if (table2 != null) table2.close();
}
} }
});
HTU.getHBaseAdmin().disableTable(hdt.getTableName());
HTU.deleteTable(hdt.getTableName());
@ -307,10 +298,11 @@ public class TestReplicaWithCluster {
HTU2.getHBaseAdmin().disableTable(hdt.getTableName());
HTU2.deleteTable(hdt.getTableName());
HTU2.shutdownMiniCluster();
// We shutdown HTU2 minicluster later, in afterClass(), as shutting down
// the minicluster has negative impact of deleting all HConnections in JVM.
}
@Test
@Test (timeout=30000)
public void testBulkLoad() throws IOException {
// Create table then get the single region for our new table.
LOG.debug("Creating test table");