hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matteo Bertozzi (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-13606) AssignmentManager.assign() is not sync in both path
Date Fri, 01 May 2015 07:45:06 GMT
Matteo Bertozzi created HBASE-13606:
---------------------------------------

             Summary: AssignmentManager.assign() is not sync in both path
                 Key: HBASE-13606
                 URL: https://issues.apache.org/jira/browse/HBASE-13606
             Project: HBase
          Issue Type: Bug
          Components: Region Assignment
    Affects Versions: 2.0.0, 1.1.0, 1.2.0
            Reporter: Matteo Bertozzi
            Assignee: Matteo Bertozzi
             Fix For: 2.0.0, 1.1.0, 1.2.0


from the comment and the expected behavior AssignmentManager.assign() should be sync
{code}
/** Assigns specified regions round robin, if any.
 * This is a synchronous call and will return once every region has been
public void assign(List<HRegionInfo> regions)
{code}

but the code has two path. 1 sync and the async
{code}
if (servers == 1 || (regions < bulkAssignThresholdRegions
        && servers < bulkAssignThresholdServers)) {
   for (HRegionInfo region: plan.getValue()) {
     ...
        invokeAssign(region);  // <-- this is async threadPool.submit(assign)
     ...
  }
} else {
  BulkAssigner ba = new GeneralBulkAssigner(...);
  ba.bulkAssign();  // <-- this is sync, calls BulkAssign.waitUntilDone()
}
{code}

https://builds.apache.org/job/HBase-1.1/452/ TestCreateTableProcedure is flaky because of
this async behavior



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

Mime
View raw message