Repository: hbase
Updated Branches:
refs/heads/0.98 a28a90eef -> f97f5a41f
HBASE-12181 Some tests create a table and try to use it before regions get
assigned (Dima Spivak)
Conflicts:
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
Amending-Author: Andrew Purtell <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f97f5a41
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f97f5a41
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f97f5a41
Branch: refs/heads/0.98
Commit: f97f5a41f4f05cf66ff83e9a0fa87635b8be8bf4
Parents: a28a90e
Author: stack <[email protected]>
Authored: Wed Oct 8 17:23:21 2014 -0700
Committer: Andrew Purtell <[email protected]>
Committed: Thu Oct 9 21:12:28 2014 -0700
----------------------------------------------------------------------
.../TestSplitTransactionOnCluster.java | 43 ++++++++++++--------
1 file changed, 26 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/f97f5a41/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
----------------------------------------------------------------------
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
index f4586ad..f5ab4a5 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
@@ -969,21 +969,30 @@ public class TestSplitTransactionOnCluster {
@Test(timeout = 180000)
public void testSplitHooksBeforeAndAfterPONR() throws Exception {
- String firstTable = "testSplitHooksBeforeAndAfterPONR_1";
- String secondTable = "testSplitHooksBeforeAndAfterPONR_2";
- HTableDescriptor desc = new
HTableDescriptor(TableName.valueOf(firstTable));
- desc.addCoprocessor(MockedRegionObserver.class.getName());
+ TableName firstTable =
TableName.valueOf("testSplitHooksBeforeAndAfterPONR_1");
+ TableName secondTable =
TableName.valueOf("testSplitHooksBeforeAndAfterPONR_2");
HColumnDescriptor hcd = new HColumnDescriptor("cf");
+
+ HTableDescriptor desc = new HTableDescriptor(firstTable);
+ desc.addCoprocessor(MockedRegionObserver.class.getName());
desc.addFamily(hcd);
admin.createTable(desc);
- desc = new HTableDescriptor(TableName.valueOf(secondTable));
- hcd = new HColumnDescriptor("cf");
+ TESTING_UTIL.waitUntilAllRegionsAssigned(firstTable);
+
+ desc = new HTableDescriptor(secondTable);
desc.addFamily(hcd);
admin.createTable(desc);
- List<HRegion> firstTableregions =
cluster.getRegions(TableName.valueOf(firstTable));
- List<HRegion> secondTableRegions =
cluster.getRegions(TableName.valueOf(secondTable));
+ TESTING_UTIL.waitUntilAllRegionsAssigned(secondTable);
+
+ List<HRegion> firstTableRegions = cluster.getRegions(firstTable);
+ List<HRegion> secondTableRegions = cluster.getRegions(secondTable);
+
+ // Check that both tables actually have regions.
+ if (firstTableRegions.size() == 0 || secondTableRegions.size() == 0) {
+ fail("Each table should have at least one region.");
+ }
ServerName serverName =
-
cluster.getServerHoldingRegion(firstTableregions.get(0).getRegionName());
+
cluster.getServerHoldingRegion(firstTableRegions.get(0).getRegionName());
admin.move(secondTableRegions.get(0).getRegionInfo().getEncodedNameAsBytes(),
Bytes.toBytes(serverName.getServerName()));
HTable table1 = null;
@@ -991,16 +1000,16 @@ public class TestSplitTransactionOnCluster {
try {
table1 = new HTable(TESTING_UTIL.getConfiguration(), firstTable);
table2 = new HTable(TESTING_UTIL.getConfiguration(), firstTable);
- insertData(Bytes.toBytes(firstTable), admin, table1);
- insertData(Bytes.toBytes(secondTable), admin, table2);
- admin.split(Bytes.toBytes(firstTable), "row2".getBytes());
- firstTableregions = cluster.getRegions(Bytes.toBytes(firstTable));
- while (firstTableregions.size() != 2) {
+ insertData(firstTable.getName(), admin, table1);
+ insertData(secondTable.getName(), admin, table2);
+ admin.split(firstTable.getName(), "row2".getBytes());
+ firstTableRegions = cluster.getRegions(firstTable.getName());
+ while (firstTableRegions.size() != 2) {
Thread.sleep(1000);
- firstTableregions = cluster.getRegions(Bytes.toBytes(firstTable));
+ firstTableRegions = cluster.getRegions(firstTable.getName());
}
- assertEquals("Number of regions after split should be 2.", 2,
firstTableregions.size());
- secondTableRegions = cluster.getRegions(Bytes.toBytes(secondTable));
+ assertEquals("Number of regions after split should be 2.", 2,
firstTableRegions.size());
+ secondTableRegions = cluster.getRegions(secondTable.getName());
assertEquals("Number of regions after split should be 2.", 2,
secondTableRegions.size());
} finally {
if (table1 != null) {