When split occurs error,it'll cause data loss
---------------------------------------------

                 Key: HBASE-4562
                 URL: https://issues.apache.org/jira/browse/HBASE-4562
             Project: HBase
          Issue Type: Bug
          Components: regionserver
    Affects Versions: 0.90.4
            Reporter: bluedavy
            Priority: Blocker
             Fix For: 0.90.5


Follow below steps to replay the problem:
1. change the SplitTransaction.java as below,just like mock the timeout error.
   {code:title=SplitTransaction.java|borderStyle=solid}
      if (!testing) {
        MetaEditor.offlineParentInMeta(server.getCatalogTracker(),
           this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo());
        throw new IOException("some unexpected error in split");
      }
   {code} 
2. update the regionserver code,restart;
3. create a table & put some data to the table;
4. split the table;
5. kill the regionserver hosted the table;
6. wait some time after master ServerShutdownHandler.process execute,then scan 
the table,u'll find the data wrote before lost.

We can fix the bug just use below code:
{code:title=SplitTransaction.java|borderStyle=solid}
      this.journal.add(JournalEntry.PONR); 
      if (!testing) {
        MetaEditor.offlineParentInMeta(server.getCatalogTracker(),
           this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo());
        throw new IOException("some unexpected error in split");
      }
{code} 

--
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

        

Reply via email to