[
https://issues.apache.org/jira/browse/HBASE-6228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406715#comment-13406715
]
stack commented on HBASE-6228:
------------------------------
I've been looking at hbase-6060 as a background task (sorry, its taking me a
while Ram and Rajesh to get back to you lot). When I put together multiple
threads (SSH, HMaster joining cluster, single vs bulk assigning/unassign,
timeout monitor, zk callbacks etc.) and then try to trace state changes not
only across multiple state keepers (RegionState, RegionInTransition,
AM#this.regions and AM#this.servers) in the master process but then also too
x-process master -> regionserver -> via zk, I want to throw out what we have
and start over (smile). That ain't going to happen though.
Meantime I think we need to identify patterns or practices and broadcast them
so all can sign on. For example, I appreciate stuff like Jimmy's small win
simplifying AM breaking out RegionStates into a standalone class apart from AM.
This at least collects a bunch of in-memory state in the one place.
We also need to have more tests I'd say so we can have some confidence stuff
still works when we shift things around.
> Fixup daughters twice cause daughter region assigned twice
> -----------------------------------------------------------
>
> Key: HBASE-6228
> URL: https://issues.apache.org/jira/browse/HBASE-6228
> Project: HBase
> Issue Type: Bug
> Components: master
> Reporter: chunhui shen
> Assignee: chunhui shen
> Fix For: 0.96.0
>
> Attachments: HBASE-6228.patch, HBASE-6228v2.patch,
> HBASE-6228v2.patch, HBASE-6228v3.patch, HBASE-6228v4.patch
>
>
> First, how fixup daughters twice happen?
> 1.we will fixupDaughters at the last of HMaster#finishInitialization
> 2.ServerShutdownHandler will fixupDaughters when reassigning region through
> ServerShutdownHandler#processDeadRegion
> When fixupDaughters, we will added daughters to .META., but it coudn't
> prevent the above case, because FindDaughterVisitor.
> The detail is as the following:
> Suppose region A is a splitted parent region, and its daughter region B is
> missing
> 1.First, ServerShutdownHander thread fixup daughter, so add daughter region B
> to .META. with serverName=null, and assign the daughter.
> 2.Then, Master's initialization thread will also find the daughter region B
> is missing and assign it. It is because FindDaughterVisitor consider daughter
> is missing if its serverName=null
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira