[
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)