You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2016/08/25 04:56:20 UTC

[jira] [Assigned] (HBASE-16462) TestRSGroupsBas#testGroupBalance may hang due to uneven region distribution

     [ https://issues.apache.org/jira/browse/HBASE-16462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu reassigned HBASE-16462:
------------------------------

    Assignee: Guangxu Cheng

> TestRSGroupsBas#testGroupBalance may hang due to uneven region distribution
> ---------------------------------------------------------------------------
>
>                 Key: HBASE-16462
>                 URL: https://issues.apache.org/jira/browse/HBASE-16462
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Guangxu Cheng
>            Assignee: Guangxu Cheng
>         Attachments: HBASE-16462-v1.patch, HBASE-16462-v2.patch, HBASE-16462-v3.patch
>
>
> show this fail when TestRSGroupsBase
> {code}
> 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)
> {code}
> The exception may be caused by a bug.
> {code:title=TestRSGroupsBase.java|borderStyle=solid}
>     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;
>       }
>     }); 
> {code}
> 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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)