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

[jira] [Updated] (HBASE-16462) Test failure TestRSGroupsBase.testGroupBalance

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

Guangxu Cheng updated HBASE-16462:
----------------------------------
    Description: 
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.

  was:
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.


> Test failure TestRSGroupsBase.testGroupBalance
> ----------------------------------------------
>
>                 Key: HBASE-16462
>                 URL: https://issues.apache.org/jira/browse/HBASE-16462
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Guangxu Cheng
>
> 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)