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

ramkrishna.s.vasudevan commented on HBASE-6228:
-----------------------------------------------

@Jon 
I have added a testcase to show the problem.
bq.but my general impression is that I cannot easily tell if this patch (and 
several similar to it) are just pushing a race from one place to another.
Could you let us know what type of issues are like that, if you have some list 
with you?

@Chunhui
What if the master initialization and SSH both are in fixUpDaughters? Then we 
are bound to get double assignment right?
The scenario am telling is Master has just completed joinCluster().  By the 
time a RS went down while splitting .  SSH starts and it comes to 
processDeadRegion.
Later master also sees there are daughters to fixup.  Now we may end up in same 
problem? I think here we need some sync mechanism.  What do you feel Chunhui?

                
> 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

        

Reply via email to