[ https://issues.apache.org/jira/browse/HBASE-4880?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13164133#comment-13164133 ]
chunhui shen commented on HBASE-4880: ------------------------------------- @Ted I use the code style by the HBASE-3678. It will put explanation for parameters on a separate line automatically. Is there any problem of HBASE-3678 ? > Region is on service before completing openRegionHanlder, may cause data loss > ----------------------------------------------------------------------------- > > Key: HBASE-4880 > URL: https://issues.apache.org/jira/browse/HBASE-4880 > Project: HBase > Issue Type: Bug > Reporter: chunhui shen > Assignee: chunhui shen > Attachments: hbase-4880.patch, hbase-4880v2.patch > > > OpenRegionHandler in regionserver is processed as the following steps: > {code} > 1.openregion()(Through it, closed = false, closing = false) > 2.addToOnlineRegions(region) > 3.update .meta. table > 4.update ZK's node state to RS_ZK_REGION_OPEND > {code} > We can find that region is on service before Step 4. > It means client could put data to this region after step 3. > What will happen if step 4 is failed processing? > It will execute OpenRegionHandler#cleanupFailedOpen which will do closing > region, and master assign this region to another regionserver. > If closing region is failed, the data which is put between step 3 and step 4 > may loss, because the region has been opend on another regionserver and be > put new data. Therefore, it may not be recoverd through replayRecoveredEdit() > because the edit's LogSeqId is smaller than current region SeqId. -- 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