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

boundaries check in hbck throwing IllegalArgumentException

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.98.0
    • Fix Version/s: 0.96.2, 0.98.1, 0.99.0
    • Component/s: hbck
    • Labels:
      None
    • Hadoop Flags:
      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.patch
          1 kB
          rajeshbabu
        2. HBASE-10677_v1.patch
          1 kB
          rajeshbabu
        3. HBASE-10677_v2.patch
          2 kB
          rajeshbabu

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: