[
https://issues.apache.org/jira/browse/HBASE-11100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13985744#comment-13985744
]
Andrew Purtell commented on HBASE-11100:
----------------------------------------
bq. The integration test internally uses HBaseTestingUtility's loadtable API
So the first idea that comes to mind is either this or the test should scale
the amount of data generated according to if the cluster is remote and then a
reading of the size of the target cluster.
> IntegrationTestTableSnapshotInputFormat fails due to empty regions
> ------------------------------------------------------------------
>
> Key: HBASE-11100
> URL: https://issues.apache.org/jira/browse/HBASE-11100
> Project: HBase
> Issue Type: Bug
> Components: snapshots
> Affects Versions: 0.98.1
> Reporter: Vandana Ayyalasomayajula
> Assignee: Vandana Ayyalasomayajula
> Priority: Minor
>
> When IntegrationTestTableSnapshotInputFormat is ran on real cluster with
> command
> {code}
> hbase
> org.apache.hadoop.hbase.mapreduce.IntegrationTestTableSnapshotInputFormat
> {code}
> it fails with the following exception:
> {code}
> Exception in thread "main" java.lang.AssertionError: expected:<32> but
> was:<30>
> at org.junit.Assert.fail(Assert.java:88)
> at org.junit.Assert.failNotEquals(Assert.java:743)
> at org.junit.Assert.assertEquals(Assert.java:118)
> at org.junit.Assert.assertEquals(Assert.java:555)
> at org.junit.Assert.assertEquals(Assert.java:542)
> at
> org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils.confirmSnapshotValid(SnapshotTestingUtils.java:244)
> at
> org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils.createSnapshotAndValidate(SnapshotTestingUtils.java:399)
> at
> org.apache.hadoop.hbase.mapreduce.TestTableSnapshotInputFormat.createTableAndSnapshot(TestTableSnapshotInputFormat.java:193)
> at
> org.apache.hadoop.hbase.mapreduce.TestTableSnapshotInputFormat.doTestWithMapReduce(TestTableSnapshotInputFormat.java:363)
> at
> org.apache.hadoop.hbase.mapreduce.IntegrationTestTableSnapshotInputFormat.runTestFromCommandLine(IntegrationTestTableSnapshotInputFormat.java:132)
> at
> org.apache.hadoop.hbase.IntegrationTestBase.doWork(IntegrationTestBase.java:79)
> at
> org.apache.hadoop.hbase.util.AbstractHBaseTool.run(AbstractHBaseTool.java:112)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
> at
> org.apache.hadoop.hbase.mapreduce.IntegrationTestTableSnapshotInputFormat.main(IntegrationTestTableSnapshotInputFormat.java:151)
> {code}
> However when we specify less number of regions, say 6 like
> {code}
> hbase
> org.apache.hadoop.hbase.mapreduce.IntegrationTestTableSnapshotInputFormat
> -DIntegrationTestTableSnapshotInputFormat.numRegions=6
> {code}
> the test passes.
> The integration test internally uses HBaseTestingUtility's loadtable API to
> create and load data into the regions. But that API does not seem to generate
> enough data for 32 regions ( which is the default number of regions in the
> integration test). As a result some regions end up with no keys. When the
> SnapshotTestingUtils calls confirmSnapshotValid method to verify the snaphot
> process, it looks for store files. When some region are empty they are not
> counted and hence the test fails.
--
This message was sent by Atlassian JIRA
(v6.2#6252)