You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ra...@apache.org on 2014/03/05 18:35:30 UTC
svn commit: r1574583 - in /hbase/trunk/hbase-server/src:
main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
Author: rajeshbabu
Date: Wed Mar 5 17:35:30 2014
New Revision: 1574583
URL: http://svn.apache.org/r1574583
Log:
HBASE-10677 boundaries check in hbck throwing IllegalArgumentException(Rajesh)
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java?rev=1574583&r1=1574582&r2=1574583&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java Wed Mar 5 17:35:30 2014
@@ -531,13 +531,13 @@ public class HBaseFsck extends Configure
List<HRegionInfo> regions = MetaScanner.listAllRegions(getConf(), false);
final RegionBoundariesInformation currentRegionBoundariesInformation =
new RegionBoundariesInformation();
+ Path hbaseRoot = FSUtils.getRootDir(getConf());
for (HRegionInfo regionInfo : regions) {
+ Path tableDir = FSUtils.getTableDir(hbaseRoot, regionInfo.getTable());
currentRegionBoundariesInformation.regionName = regionInfo.getRegionName();
// 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() + "/");
+ Path path = new Path(tableDir, regionInfo.getEncodedName());
FileSystem fs = path.getFileSystem(getConf());
FileStatus[] files = fs.listStatus(path);
// For all the column families in this region...
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java?rev=1574583&r1=1574582&r2=1574583&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsck.java Wed Mar 5 17:35:30 2014
@@ -2249,6 +2249,19 @@ public class TestHBaseFsck {
}
}
+ @Test
+ public void testRegionBoundariesCheck() throws Exception {
+ HBaseFsck hbck = doFsck(conf, false);
+ assertNoErrors(hbck); // no errors
+ try {
+ hbck.checkRegionBoundaries();
+ } catch (IllegalArgumentException e) {
+ if (e.getMessage().endsWith("not a valid DFS filename.")) {
+ fail("Table directory path is not valid." + e.getMessage());
+ }
+ }
+ }
+
@org.junit.Rule
public TestName name = new TestName();
}