Stephen Yuan Jiang created HBASE-15636:
------------------------------------------

             Summary: hard coded wait time out value in 
HBaseTestingUtility#waitUntilAllRegionsAssigned might cause test failure
                 Key: HBASE-15636
                 URL: https://issues.apache.org/jira/browse/HBASE-15636
             Project: HBase
          Issue Type: Bug
          Components: integration tests, test
    Affects Versions: 1.2.0, 2.0.0
            Reporter: Stephen Yuan Jiang
            Assignee: Stephen Yuan Jiang
            Priority: Minor


HBaseTestingUtility#waitUntilAllRegionsAssigned(final TableName tableName) hard 
coded 60 seconds wait for region assignment in a table.  This could cause flaky 
tests, as the caller could create table with longs of region which takes longs 
time; or in CM, RS unavailable could slow down assignment; or in a slow 
machine, IT might take long to assign regions.  

In HBaseAdmin.java, we use a configurable value to wait for the table DDLs: 
{{this.syncWaitTimeout = 
this.conf.getInt("hbase.client.sync.wait.timeout.msec", 10 * 60000); // 10min}} 
- we should use the config for the 
HBaseTestingUtility#waitUntilAllRegionsAssigned() too.

Of course, the caller could use the "public void 
waitUntilAllRegionsAssigned(final TableName tableName, final long timeout)"; 
but it requires test change (currently, no test directly calls this signature). 

{code}  
/**
   * Wait until all regions for a table in hbase:meta have a non-empty
   * info:server, up to 60 seconds. This means all regions have been deployed,
   * master has been informed and updated hbase:meta with the regions deployed
   * server.
   * @param tableName the table name
   * @throws IOException
   */
  public void waitUntilAllRegionsAssigned(final TableName tableName) throws 
IOException {
    waitUntilAllRegionsAssigned(tableName, 60000);
  }
{code}



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

Reply via email to