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] [Commented] (HBASE-13606) AssignmentManager.assign() is not sync in both path
Date Tue, 05 May 2015 00:24:06 GMT

    [ https://issues.apache.org/jira/browse/HBASE-13606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14527625#comment-14527625
] 

Matteo Bertozzi commented on HBASE-13606:
-----------------------------------------

[~ndimiduk] yeah, the failures are related. this is a rabbit hole. i'm working on a patch,
it is not that simple as I thought since there are various places where assignment is not
sync.
also TestCreateTableProcedure will not be fixed with this because we don't have an event post
region initialization. the open is only "new HRegion" and not region.initialize()

> 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
>
>         Attachments: HBASE-13606-v0.patch, HBASE-13606-v1-branch-1.patch, HBASE-13606-v1.patch,
TEST-org.apache.hadoop.hbase.master.procedure.TestCreateTableProcedure.xml
>
>
> 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