HBASE-11517 TestReplicaWithCluster turns zombie (Mikhail Antonov)
This commit is contained in:
parent
76543f525a
commit
688877606b
|
@ -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");
|
||||
|
|
Loading…
Reference in New Issue