Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,10 @@ private RegionInfo metaTableConsistencyCheck(Result metaTableRow) {
addOverlap(this.highestEndKeyRegionInfo, ri);
}
}
this.previous = ri;
this.highestEndKeyRegionInfo =
MetaFixer.getRegionInfoWithLargestEndKey(this.highestEndKeyRegionInfo, ri);
}
this.previous = ri;
this.highestEndKeyRegionInfo =
MetaFixer.getRegionInfoWithLargestEndKey(this.highestEndKeyRegionInfo, ri);
return ri;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.MetaTableAccessor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.TableNotEnabledException;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.RegionInfo;
import org.apache.hadoop.hbase.client.RegionInfoBuilder;
Expand Down Expand Up @@ -68,6 +69,8 @@ public class TestCatalogJanitorCluster {
private static final TableName T3 = TableName.valueOf("t3");
private static final TableName T4 = TableName.valueOf("t4");
private static final TableName T5 = TableName.valueOf("t5");
private static final TableName T6 = TableName.valueOf("t6");
private static final TableName T7 = TableName.valueOf("t7");

@Before
public void before() throws Exception {
Expand All @@ -84,6 +87,9 @@ public void before() throws Exception {
final byte[][] keysForT5 = { Bytes.toBytes("bb"), Bytes.toBytes("cc"), Bytes.toBytes("dd") };

TEST_UTIL.createTable(T5, HConstants.CATALOG_FAMILY, keysForT5);

TEST_UTIL.createMultiRegionTable(T6, new byte[][] { HConstants.CATALOG_FAMILY });
TEST_UTIL.createMultiRegionTable(T7, new byte[][] { HConstants.CATALOG_FAMILY });
}

@After
Expand Down Expand Up @@ -231,7 +237,7 @@ private static byte[] incrementRow(byte[] row) {
}

@Test
public void testHoles() throws IOException {
public void testHoles() throws IOException, InterruptedException {
CatalogJanitor janitor = TEST_UTIL.getHBaseCluster().getMaster().getCatalogJanitor();

CatalogJanitorReport report = janitor.getLastReport();
Expand All @@ -241,6 +247,9 @@ public void testHoles() throws IOException {
verifyCornerHoles(janitor, T1);
// Verify start and end region holes
verifyCornerHoles(janitor, T2);
// Verify start and end region holes when next table is disable see: HBASE-27560
disableTable(T7);
verifyCornerHoles(janitor, T6);
verifyMiddleHole(janitor);
// Verify that MetaFixer is able to fix these holes
fixHoles(janitor);
Expand All @@ -250,8 +259,8 @@ private void fixHoles(CatalogJanitor janitor) throws IOException {
MetaFixer metaFixer = new MetaFixer(TEST_UTIL.getHBaseCluster().getMaster());
janitor.scan();
CatalogJanitorReport report = janitor.getLastReport();
// Verify total number of holes, 2 in t1 and t2 each and one in t3
assertEquals("Number of holes are not matching", 5, report.getHoles().size());
// Verify total number of holes, 2 in t1, t2, t6 each and one in t3
assertEquals("Number of holes are not matching", 7, report.getHoles().size());
metaFixer.fix();
janitor.scan();
report = janitor.getLastReport();
Expand Down Expand Up @@ -327,4 +336,13 @@ private RegionInfo getRegionInfo(TableName tableName, byte[] row) throws IOExcep
assertNotNull(regionInfo);
return regionInfo;
}

private void disableTable(TableName tableName) throws IOException, InterruptedException {
try {
TEST_UTIL.getAdmin().disableTable(tableName);
TEST_UTIL.waitTableDisabled(tableName, 30000);
} catch (TableNotEnabledException e) {
LOG.debug("Table: " + tableName + " already disabled, ignore.");
}
}
}