Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-10933

hbck -fixHdfsOrphans is not working properly it throws null pointer exception

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 0.94.16, 0.98.2
    • Fix Version/s: 2.0.0
    • Component/s: hbck
    • Labels:
      None

      Description

      if we regioninfo file is not existing in hbase region then if we run hbck repair or hbck -fixHdfsOrphans
      then it is not able to resolve this problem it throws null pointer exception

      2014-04-08 20:11:49,750 INFO  [main] util.HBaseFsck (HBaseFsck.java:adoptHdfsOrphans(470)) - Attempting to handle orphan hdfs dir: hdfs://10.18.40.28:54310/hbase/TestHdfsOrphans1/5a3de9ca65e587cb05c9384a3981c950
      java.lang.NullPointerException
      	at org.apache.hadoop.hbase.util.HBaseFsck$TableInfo.access$000(HBaseFsck.java:1939)
      	at org.apache.hadoop.hbase.util.HBaseFsck.adoptHdfsOrphan(HBaseFsck.java:497)
      	at org.apache.hadoop.hbase.util.HBaseFsck.adoptHdfsOrphans(HBaseFsck.java:471)
      	at org.apache.hadoop.hbase.util.HBaseFsck.restoreHdfsIntegrity(HBaseFsck.java:591)
      	at org.apache.hadoop.hbase.util.HBaseFsck.offlineHdfsIntegrityRepair(HBaseFsck.java:369)
      	at org.apache.hadoop.hbase.util.HBaseFsck.onlineHbck(HBaseFsck.java:447)
      	at org.apache.hadoop.hbase.util.HBaseFsck.exec(HBaseFsck.java:3769)
      	at org.apache.hadoop.hbase.util.HBaseFsck.run(HBaseFsck.java:3587)
      	at com.huawei.isap.test.smartump.hadoop.hbase.HbaseHbckRepair.repairToFixHdfsOrphans(HbaseHbckRepair.java:244)
      	at com.huawei.isap.test.smartump.hadoop.hbase.HbaseHbckRepair.setUp(HbaseHbckRepair.java:84)
      	at junit.framework.TestCase.runBare(TestCase.java:132)
      	at junit.framework.TestResult$1.protect(TestResult.java:110)
      	at junit.framework.TestResult.runProtected(TestResult.java:128)
      	at junit.framework.TestResult.run(TestResult.java:113)
      	at junit.framework.TestCase.run(TestCase.java:124)
      	at junit.framework.TestSuite.runTest(TestSuite.java:243)
      	at junit.framework.TestSuite.run(TestSuite.java:238)
      	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
      	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
      	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
      

      problem i got it is because since in HbaseFsck class

       private void adoptHdfsOrphan(HbckInfo hi)
      

      we are intializing tableinfo using SortedMap<String, TableInfo> tablesInfo object

      TableInfo tableInfo = tablesInfo.get(tableName);
      

      but in private SortedMap<String, TableInfo> loadHdfsRegionInfos()

       for (HbckInfo hbi: hbckInfos) {
      
            if (hbi.getHdfsHRI() == null) {
              // was an orphan
              continue;
            }
      

      we have check if a region is orphan then that table will can not be added in SortedMap<String, TableInfo> tablesInfo

      so later while using this we get null pointer exception

        Attachments

        1. TestResults-trunk.txt
          10 kB
          Kashif
        2. TestResults-0.94.txt
          7 kB
          Kashif
        3. HBASE-10933-trunk-v2.patch
          11 kB
          Kashif
        4. HBASE-10933-trunk-v1.patch
          11 kB
          Kashif
        5. HBASE-10933-0.94-v2.patch
          15 kB
          Kashif
        6. HBASE-10933-0.94-v1.patch
          14 kB
          Kashif

          Activity

            People

            • Assignee:
              kashifjs@huawei.com Kashif
              Reporter:
              deepakhuawei Deepak Sharma
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: