[ https://issues.apache.org/jira/browse/HBASE-4880?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13165977#comment-13165977 ]
Hudson commented on HBASE-4880: ------------------------------- Integrated in HBase-TRUNK #2532 (See [https://builds.apache.org/job/HBase-TRUNK/2532/]) HBASE-4880 Region is on service before openRegionHandler completes, may cause data loss stack : Files : * /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java * /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java * /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java * /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java * /hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java > 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 > Fix For: 0.92.0 > > Attachments: 4880-0.92.txt, 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