diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java index c066803..ca7bc81 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java @@ -795,7 +795,7 @@ } currentRegionBoundariesInformation.metaFirstKey = regionInfo.getStartKey(); currentRegionBoundariesInformation.metaLastKey = regionInfo.getEndKey(); - currentRegionBoundariesInformation.storesFirstKey = storeFirstKey; + currentRegionBoundariesInformation.storesFirstKey = keyOnly(storeFirstKey); currentRegionBoundariesInformation.storesLastKey = keyOnly(storeLastKey); if (currentRegionBoundariesInformation.metaFirstKey.length == 0) currentRegionBoundariesInformation.metaFirstKey = null; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckOneRS.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckOneRS.java index 21935f3..3ab3b36 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckOneRS.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestHBaseFsckOneRS.java @@ -580,6 +580,30 @@ } } + /** + * test region boundaries and make sure store file had been created. + * @throws Exception + */ + @Test(timeout = 180000) + public void testRegionBoundariesCheckWithFlushTable() throws Exception { + HBaseFsck hbck = doFsck(conf, false); + assertNoErrors(hbck); // no errors + TableName table = TableName.valueOf("testRegionBoundariesCheckWithTestFlushTable"); + try { + setupTable(table); + admin.flush(table); + hbck.connect(); // need connection to have access to META + hbck.checkRegionBoundaries(); + assertNoErrors(hbck); // no errors + } catch (IllegalArgumentException e) { + if (e.getMessage().endsWith("not a valid DFS filename.")) { + fail("Table directory path is not valid." + e.getMessage()); + } + } finally { + hbck.close(); + } + } + @Test (timeout=180000) public void testHbckAfterRegionMerge() throws Exception { TableName table = TableName.valueOf("testMergeRegionFilesInHdfs");