Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
None
-
Reviewed
Description
show this fail when TestRSGroupsBase
testGroupBalance(org.apache.hadoop.hbase.rsgroup.TestRSGroups) Time elapsed: 309.517 sec <<< FAILURE! java.lang.AssertionError: Waiting timed out after [300,000] msec at org.junit.Assert.fail(Assert.java:88) at org.apache.hadoop.hbase.Waiter.waitFor(Waiter.java:209) at org.apache.hadoop.hbase.Waiter.waitFor(Waiter.java:143) at org.apache.hadoop.hbase.HBaseTestingUtility.waitFor(HBaseTestingUtility.java:3816) at org.apache.hadoop.hbase.rsgroup.TestRSGroupsBase.testGroupBalance(TestRSGroupsBase.java:434)
The exception may be caused by a bug.
TestRSGroupsBase.java
rsGroupAdmin.balanceRSGroup(newGroupName); TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate<Exception>() { @Override public boolean evaluate() throws Exception { for (List<String> regions : getTableServerRegionMap().get(tableName).values()) { if (2 != regions.size()) { return false; } } return true; } });
The new Group has one table and three servers, and the table has six regions.
Beginning, all regions are located on a single server.
After balance, regions distributed on three server, preferably each server on two region.
However,this is not absolute. Maybe one server has one region, another server has three regions.
So, while waiting for the results of balance, we need only determine whether the region on the server, without having to check region's number.
Attachments
Attachments
Issue Links
- is related to
-
HBASE-15631 Backport Regionserver Groups (HBASE-6721) to branch-1
- Closed