HBase
  1. HBase
  2. HBASE-4562

When split doing offlineParentInMeta encounters error, it'll cause data loss

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 0.90.4
    • Fix Version/s: 0.90.5
    • Component/s: regionserver
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      Follow below steps to replay the problem:
      1. change the SplitTransaction.java as below,just like mock the timeout error.

      SplitTransaction.java
            if (!testing) {
              MetaEditor.offlineParentInMeta(server.getCatalogTracker(),
                 this.parent.getRegionInfo(), a.getRegionInfo(), b.getRegionInfo());
              throw new IOException("some unexpected error in split");
            }
         

      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 the patch.

      1. HBASE-4562-0.90.4.patch
        2 kB
        bluedavy
      2. HBASE-4562-0.90.patch
        2 kB
        bluedavy
      3. HBASE-4562-0.92.patch
        3 kB
        bluedavy
      4. HBASE-4562-trunk.patch
        3 kB
        bluedavy
      5. test-4562-0.90.4.txt
        21 kB
        bluedavy
      6. test-4562-0.90.txt
        21 kB
        bluedavy
      7. test-4562-0.92.txt
        30 kB
        bluedavy
      8. test-4562-trunk.txt
        31 kB
        bluedavy

        Activity

          People

          • Assignee:
            bluedavy
            Reporter:
            bluedavy
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development