[ https://issues.apache.org/jira/browse/HBASE-4880?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13165737#comment-13165737 ]
chunhui shen commented on HBASE-4880: ------------------------------------- Address Ram and Stack comments in patchv4 Thanks. Please check > Region is on service before openRegionHandler completes, may cause data loss > ---------------------------------------------------------------------------- > > Key: HBASE-4880 > URL: https://issues.apache.org/jira/browse/HBASE-4880 > Project: HBase > Issue Type: Bug > Affects Versions: 0.92.0, 0.94.0 > Reporter: chunhui shen > Assignee: chunhui shen > Attachments: 4880.txt, hbase-4880.patch, hbase-4880v2.patch, > hbase-4880v3.patch, hbase-4880v4.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