[ https://issues.apache.org/jira/browse/HBASE-6228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402106#comment-13402106 ]
chunhui shen commented on HBASE-6228: ------------------------------------- @ram Do you run the case in trunk? Maybe case is not good, but I run it and always failed without patch. bq.update the region plan we cannot assure that double assignment can be done If we restart master after fixup daughter, master won't contain any plans, so I just simulate it and ensure case could happen. Another thing, I think I must say: If we send open region RPC twice for one region, but not assigned twice because we have many protection through version. But we also have risk of data correctness. Why?: When region in opening, it will replay log edits and flush; if two regionservers do opening region together, could we ensure data correctness? > 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 > > > 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