diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java index ac87269..e52a600 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java @@ -135,7 +135,7 @@ public class TestReplicationBase { HTableDescriptor table = new HTableDescriptor(tableName); HColumnDescriptor fam = new HColumnDescriptor(famName); - fam.setMaxVersions(3); + fam.setMaxVersions(100); fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL); table.addFamily(fam); fam = new HColumnDescriptor(noRepfamName); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.java index b050f49..c952077 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationSmallTests.java @@ -29,16 +29,7 @@ import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.hadoop.hbase.Cell; -import org.apache.hadoop.hbase.CellUtil; -import org.apache.hadoop.hbase.ClusterStatus; -import org.apache.hadoop.hbase.HColumnDescriptor; -import org.apache.hadoop.hbase.HConstants; -import org.apache.hadoop.hbase.HRegionInfo; -import org.apache.hadoop.hbase.HTableDescriptor; -import org.apache.hadoop.hbase.ServerLoad; -import org.apache.hadoop.hbase.ServerName; -import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; @@ -490,6 +481,66 @@ public class TestReplicationSmallTests extends TestReplicationBase { findCounter(VerifyReplication.Verifier.Counters.BADROWS).getValue()); } + @Test(timeout=300000) + public void testHBase14905() throws Exception { + // normal Batch tests + Put put = new Put(Bytes.toBytes("r1")); + put.addColumn(famName, Bytes.toBytes("f1"), Bytes.toBytes("v1002")); + htable1.put(put); + put.addColumn(famName, Bytes.toBytes("f1"), Bytes.toBytes("v1001")); + htable1.put(put); + put.addColumn(famName, Bytes.toBytes("f1"), Bytes.toBytes("v1112")); + htable1.put(put); + + Scan scan = new Scan(); + scan.setMaxVersions(100); + ResultScanner scanner1 = htable1.getScanner(scan); + Result[] res1 = scanner1.next(NB_ROWS_IN_BATCH); + scanner1.close(); + + for (Result result : res1) { + CellScanner cellScanner = result.cellScanner(); + while (cellScanner.advance()) { + System.out.println("@@htable1@" + cellScanner.current() + ", " + + Bytes.toString(cellScanner.current().getValueArray(), + cellScanner.current().getValueOffset(), cellScanner.current().getValueLength())); + } + } + + put.addColumn(famName, Bytes.toBytes("f1"), Bytes.toBytes("v1111")); + htable2.put(put); + put.addColumn(famName, Bytes.toBytes("f1"), Bytes.toBytes("v1112")); + htable2.put(put); + + scan = new Scan(); + scan.setMaxVersions(100); + scanner1 = htable2.getScanner(scan); + res1 = scanner1.next(NB_ROWS_IN_BATCH); + scanner1.close(); + + for (Result result : res1) { + CellScanner cellScanner = result.cellScanner(); + while (cellScanner.advance()) { + System.out.println("@@htable2@" + cellScanner.current() + ", " + + Bytes.toString(cellScanner.current().getValueArray(), + cellScanner.current().getValueOffset(), cellScanner.current().getValueLength())); + } + } + + String[] args = new String[] {"--versions=100", "2", tableName.getNameAsString()}; + Job job = VerifyReplication.createSubmittableJob(CONF_WITH_LOCALFS, args); + if (job == null) { + fail("Job wasn't created, see the log"); + } + if (!job.waitForCompletion(true)) { + fail("Job failed, see the log"); + } + System.out.println("@@" + job.getCounters(). + findCounter(VerifyReplication.Verifier.Counters.GOODROWS).getValue()); + System.out.println("@@" + job.getCounters(). + findCounter(VerifyReplication.Verifier.Counters.BADROWS).getValue()); + } + /** * Test for HBASE-9038, Replication.scopeWALEdits would NPE if it wasn't filtering out * the compaction WALEdit