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

boundaries check in hbck throwing IllegalArgumentException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.98.0
    • 0.96.2, 0.98.1, 0.99.0
    • hbck
    • None
    • Reviewed

    Description

      This is the exception

      java.lang.IllegalArgumentException: Pathname /hbase/hbase:labels/438f84dea5d0e24e390de927deb8a84e from hdfs://10.18.40.29:54310/hbase/hbase:labels/438f84dea5d0e24e390de927deb8a84e is not a valid DFS filename.
              at org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:184)
              at org.apache.hadoop.hdfs.DistributedFileSystem.listStatusInternal(DistributedFileSystem.java:637)
              at org.apache.hadoop.hdfs.DistributedFileSystem.access$600(DistributedFileSystem.java:92)
              at org.apache.hadoop.hdfs.DistributedFileSystem$14.doCall(DistributedFileSystem.java:702)
              at org.apache.hadoop.hdfs.DistributedFileSystem$14.doCall(DistributedFileSystem.java:698)
              at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
              at org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:698)
              at org.apache.hadoop.hbase.util.HBaseFsck.checkRegionBoundaries(HBaseFsck.java:537)
              at org.apache.hadoop.hbase.util.HBaseFsck.onlineHbck(HBaseFsck.java:487)
              at org.apache.hadoop.hbase.util.HBaseFsck.exec(HBaseFsck.java:4028)
              at org.apache.hadoop.hbase.util.HBaseFsck$HBaseFsckTool.run(HBaseFsck.java:3837)
              at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
              at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
              at org.apache.hadoop.hbase.util.HBaseFsck.main(HBaseFsck.java:3825)
      

      We are pointing to wrong table directory. This is the code causing the problem.

              // For each region, get the start and stop key from the META and compare them to the
              // same information from the Stores.
              Path path = new Path(getConf().get(HConstants.HBASE_DIR) + "/"
                  + Bytes.toString(regionInfo.getTable().getName()) + "/"
                  + regionInfo.getEncodedName() + "/");
      

      Attachments

        1. HBASE-10677_v1.patch
          1 kB
          rajeshbabu
        2. HBASE-10677_v2.patch
          2 kB
          rajeshbabu
        3. HBASE-10677.patch
          1 kB
          rajeshbabu

        Activity

          People

            rajesh23 rajeshbabu
            rajesh23 rajeshbabu
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: