[ https://issues.apache.org/jira/browse/HBASE-8251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13621689#comment-13621689 ]
chunhui shen commented on HBASE-8251: ------------------------------------- [~jeason] Good catch, but move enabling SSH before assign META would cause another META data loss case: 1. Assign ROOT. 2. Block until ROOT be opened. 3. Enable SSH 4. Assign META. 5. Block until META be opened. if META RS is killed between step 3 and step 4, SSH will start handling it (including split logs), step 4 will assign the META, it means META region would loss the data from the hlog. In order to fix related cases, two other things should also be noticed: 1.The concurrency of SSH#process and HMaster#splitLogAndExpireIfOnline 2.Before completing assignRootAndMeta, A dead META RS will be handled by ServerShutdownHandler, not MetaServerShutdownHandler, see AssignmentManager#isCarryingMeta Since we have dropped ROOT in trunk, I think there is no related trouble in trunk. IMHO, aborting master may be a compromise choice if encounter this case. > enable SSH before assign META on Master startup > ----------------------------------------------- > > Key: HBASE-8251 > URL: https://issues.apache.org/jira/browse/HBASE-8251 > Project: HBase > Issue Type: Bug > Components: master, Region Assignment > Affects Versions: 0.94.6 > Reporter: Jieshan Bean > Assignee: Jieshan Bean > Attachments: HBASE-8251-94.patch > > > I think HBASE-5918 could not fix this issue. In HMaster#assignRootAndMeta: > 1. Assign ROOT. > 2. Block until ROOT be opened. > 3. Assign META. > 4. Block until META be opened. > SSH is enabled after step 4. So if the RS who host ROOT dies before step 4, > master will be blocked. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira