Repository: hbase Updated Branches: refs/heads/branch-1 96b86b71d -> dbcda15ae refs/heads/branch-1.4 4a3183dc9 -> 626d74f79
HBASE-19240 more error-prone results Signed-off-by: Andrew Purtell <apurt...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/dbcda15a Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/dbcda15a Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/dbcda15a Branch: refs/heads/branch-1 Commit: dbcda15ae71ddcec1e380ed88d1307e12d2da055 Parents: 96b86b7 Author: Mike Drob <md...@apache.org> Authored: Fri Nov 10 16:32:25 2017 -0600 Committer: Andrew Purtell <apurt...@apache.org> Committed: Mon Nov 13 18:23:10 2017 -0800 ---------------------------------------------------------------------- .../hbase/ipc/IntegrationTestRpcClient.java | 10 +++---- .../hbase/rest/model/TestVersionModel.java | 5 ++++ .../hadoop/hbase/client/TestFromClientSide.java | 8 ++--- ...erverForAddingMutationsFromCoprocessors.java | 2 +- .../hbase/master/TestRegionPlacement.java | 3 +- .../normalizer/TestSimpleRegionNormalizer.java | 6 +++- .../TestEndToEndSplitTransaction.java | 4 +-- .../hbase/regionserver/TestHRegionInfo.java | 1 + .../hbase/regionserver/TestKeepDeletes.java | 1 + .../regionserver/TestMemStoreChunkPool.java | 4 +-- .../regionserver/TestServerNonceManager.java | 2 +- .../TestStoreFileRefresherChore.java | 31 +++++++++++--------- .../replication/TestReplicationEndpoint.java | 2 +- .../security/access/TestTablePermissions.java | 4 +-- .../hbase/util/MultiThreadedUpdaterWithACL.java | 8 ++--- 15 files changed, 52 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-it/src/test/java/org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.java ---------------------------------------------------------------------- diff --git a/hbase-it/src/test/java/org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.java b/hbase-it/src/test/java/org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.java index f41efc7..5b823b7 100644 --- a/hbase-it/src/test/java/org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.java +++ b/hbase-it/src/test/java/org/apache/hadoop/hbase/ipc/IntegrationTestRpcClient.java @@ -219,24 +219,22 @@ public class IntegrationTestRpcClient { @Override public void run() { while (running.get()) { - switch (random.nextInt() % 2) { - case 0: //start a server + if (random.nextBoolean()) { + //start a server try { cluster.startServer(); } catch (Exception e) { LOG.warn(e); exception.compareAndSet(null, e); } - break; - - case 1: // stop a server + } else { + // stop a server try { cluster.stopRandomServer(); } catch (Exception e) { LOG.warn(e); exception.compareAndSet(null, e); } - default: } Threads.sleep(100); http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/model/TestVersionModel.java ---------------------------------------------------------------------- diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/model/TestVersionModel.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/model/TestVersionModel.java index 4a9ceaf..154afe1 100644 --- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/model/TestVersionModel.java +++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/model/TestVersionModel.java @@ -21,7 +21,12 @@ package org.apache.hadoop.hbase.rest.model; import org.apache.hadoop.hbase.testclassification.SmallTests; +import org.junit.Assume; +import org.junit.Test; import org.junit.experimental.categories.Category; +import org.mockito.Mockito; + +import javax.servlet.ServletContext; @Category(SmallTests.class) public class TestVersionModel extends TestModelBase<VersionModel> { http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java index de6ecab..6f73409 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java @@ -4767,8 +4767,8 @@ public class TestFromClientSide { NavigableMap<Long, byte[]> navigableMap = result.getMap().get(FAMILY) .get(QUALIFIER); - assertEquals("The number of versions of '" + FAMILY + ":" + QUALIFIER - + " did not match " + versions, versions, navigableMap.size()); + assertEquals("The number of versions of '" + Bytes.toString(FAMILY) + ":" + + Bytes.toString(QUALIFIER) + " did not match", versions, navigableMap.size()); for (Map.Entry<Long, byte[]> entry : navigableMap.entrySet()) { assertTrue("The value at time " + entry.getKey() + " did not match what was put", @@ -4804,8 +4804,8 @@ public class TestFromClientSide { NavigableMap<Long, byte[]> navigableMap = result.getMap().get(FAMILY) .get(QUALIFIER); - assertEquals("The number of versions of '" + FAMILY + ":" + QUALIFIER + " did not match " + - versions + "; " + put.toString() + ", " + get.toString(), versions, navigableMap.size()); + assertEquals("The number of versions of '" + Bytes.toString(FAMILY) + ":" + + Bytes.toString(QUALIFIER) + " did not match", versions, navigableMap.size()); for (Map.Entry<Long, byte[]> entry : navigableMap.entrySet()) { assertTrue("The value at time " + entry.getKey() + " did not match what was put", http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverForAddingMutationsFromCoprocessors.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverForAddingMutationsFromCoprocessors.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverForAddingMutationsFromCoprocessors.java index 0663b0b..3d34503 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverForAddingMutationsFromCoprocessors.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverForAddingMutationsFromCoprocessors.java @@ -206,7 +206,7 @@ public class TestRegionObserverForAddingMutationsFromCoprocessors { new Put(row2).addColumn(test, dummy, cells.get(0).getTimestamp(), dummy), new Put(row3).addColumn(test, dummy, cells.get(0).getTimestamp(), dummy), }; - LOG.info("Putting:" + puts); + LOG.info("Putting:" + Arrays.toString(puts)); miniBatchOp.addOperationsFromCP(0, puts); } } http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java index a2cb354..a065872 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestRegionPlacement.java @@ -421,7 +421,8 @@ public class TestRegionPlacement { for (Region region: rs.getOnlineRegions(TableName.valueOf("testRegionAssignment"))) { InetSocketAddress[] favoredSocketAddress = rs.getFavoredNodesForRegion( region.getRegionInfo().getEncodedName()); - List<ServerName> favoredServerList = plan.getAssignmentMap().get(region.getRegionInfo()); + String regionName = region.getRegionInfo().getRegionNameAsString(); + List<ServerName> favoredServerList = plan.getAssignmentMap().get(regionName); // All regions are supposed to have favored nodes, // except for hbase:meta and ROOT http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/normalizer/TestSimpleRegionNormalizer.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/normalizer/TestSimpleRegionNormalizer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/normalizer/TestSimpleRegionNormalizer.java index 81ecdcb..1e29514 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/normalizer/TestSimpleRegionNormalizer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/normalizer/TestSimpleRegionNormalizer.java @@ -263,6 +263,7 @@ public class TestSimpleRegionNormalizer { assertEquals(hri4, ((SplitNormalizationPlan) plan).getRegionInfo()); } + @SuppressWarnings("MockitoCast") protected void setupMocksForNormalizer(Map<byte[], Integer> regionSizes, List<HRegionInfo> hris) { masterServices = Mockito.mock(MasterServices.class, RETURNS_DEEP_STUBS); @@ -280,7 +281,10 @@ public class TestSimpleRegionNormalizer { when(regionLoad.getName()).thenReturn(region.getKey()); when(regionLoad.getStorefileSizeMB()).thenReturn(region.getValue()); - when(masterServices.getServerManager().getLoad(sn). + // this is possibly broken with jdk9, unclear if false positive or not + // suppress it for now, fix it when we get to running tests on 9 + // see: http://errorprone.info/bugpattern/MockitoCast + when((Object) masterServices.getServerManager().getLoad(sn). getRegionsLoad().get(region.getKey())).thenReturn(regionLoad); } try { http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java index 14fdd5d..b133224 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java @@ -535,8 +535,8 @@ public class TestEndToEndSplitTransaction { } if (daughterA == null || daughterB == null) { throw new IOException("Failed to get daughters, daughterA=" + daughterA + ", daughterB=" + - daughterB + ", timeout=" + timeout + ", result=" + result + ", regionName=" + regionName + - ", region=" + region); + daughterB + ", timeout=" + timeout + ", result=" + result + ", regionName=" + + Bytes.toString(regionName) + ", region=" + region); } //if we are here, this means the region split is complete or timed out http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java index 7d1595e..f9013b7 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java @@ -152,6 +152,7 @@ public class TestHRegionInfo { assertTrue(HRegionInfo.FIRST_META_REGIONINFO.isMetaTable()); } + @SuppressWarnings("SelfComparison") @Test public void testComparator() { TableName tablename = TableName.valueOf("comparatorTablename"); http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeepDeletes.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeepDeletes.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeepDeletes.java index 0af913f..41b6ee3 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeepDeletes.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestKeepDeletes.java @@ -762,6 +762,7 @@ public class TestKeepDeletes { /** * Verify scenarios with multiple CFs and columns */ + @Test public void testWithMixedCFs() throws Exception { HTableDescriptor htd = hbu.createTableDescriptor(name.getMethodName(), 0, 1, HConstants.FOREVER, KeepDeletedCells.TRUE); http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java index f0262ed..d1ad68c 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java @@ -30,8 +30,8 @@ import org.apache.hadoop.hbase.exceptions.UnexpectedStateException; import org.apache.hadoop.hbase.testclassification.SmallTests; import org.apache.hadoop.hbase.util.ByteRange; import org.apache.hadoop.hbase.util.Bytes; +import org.junit.After; import org.junit.AfterClass; -import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -60,7 +60,7 @@ public class TestMemStoreChunkPool { MemStoreChunkPool.chunkPoolDisabled = chunkPoolDisabledBeforeTest; } - @Before + @After public void tearDown() throws Exception { chunkPool.clearChunks(); } http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java index 6bf1721..15bebe6 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java @@ -100,7 +100,7 @@ public class TestServerNonceManager { ServerNonceManager nm = createManager(); try { nm.endOperation(NO_NONCE, 1, true); - fail("Should have thrown"); + throw new Error("Should have thrown"); } catch (AssertionError err) {} } http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.java index 455be4a..99f7a9f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.java @@ -20,6 +20,7 @@ package org.apache.hadoop.hbase.regionserver; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -49,7 +50,6 @@ import org.apache.hadoop.hbase.wal.WALFactory; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.FSUtils; import org.apache.hadoop.hbase.util.StoppableImplementation; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -126,6 +126,19 @@ public class TestStoreFileRefresherChore { } } + private void verifyDataExpectFail(Region newReg, int startRow, int numRows, byte[] qf, + byte[]... families) throws IOException { + boolean threw = false; + try { + verifyData(newReg, startRow, numRows, qf, families); + } catch (AssertionError e) { + threw = true; + } + if (!threw) { + fail("Expected data verification to fail"); + } + } + private void verifyData(Region newReg, int startRow, int numRows, byte[] qf, byte[]... families) throws IOException { for (int i = startRow; i < startRow + numRows; i++) { @@ -183,12 +196,7 @@ public class TestStoreFileRefresherChore { primary.flush(true); verifyData(primary, 0, 100, qf, families); - try { - verifyData(replica1, 0, 100, qf, families); - Assert.fail("should have failed"); - } catch(AssertionError ex) { - // expected - } + verifyDataExpectFail(replica1, 0, 100, qf, families); chore.chore(); verifyData(replica1, 0, 100, qf, families); @@ -203,18 +211,13 @@ public class TestStoreFileRefresherChore { chore.chore(); // should not throw ex, but we cannot refresh the store files verifyData(replica1, 0, 100, qf, families); - try { - verifyData(replica1, 100, 100, qf, families); - Assert.fail("should have failed"); - } catch(AssertionError ex) { - // expected - } + verifyDataExpectFail(replica1, 100, 100, qf, families); chore.isStale = true; chore.chore(); //now after this, we cannot read back any value try { verifyData(replica1, 0, 100, qf, families); - Assert.fail("should have failed with IOException"); + fail("should have failed with IOException"); } catch(IOException ex) { // expected } http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.java index 7128adc..277d876 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationEndpoint.java @@ -473,7 +473,7 @@ public class TestReplicationEndpoint extends TestReplicationBase { } super.replicate(replicateContext); - LOG.info("Replicated " + row + ", count=" + replicateCount.get()); + LOG.info("Replicated " + Bytes.toString(row) + ", count=" + replicateCount.get()); replicated.set(replicateCount.get() > COUNT); // first 10 times, we return false return replicated.get(); http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestTablePermissions.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestTablePermissions.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestTablePermissions.java index ba586f5..f8fad9f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestTablePermissions.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestTablePermissions.java @@ -233,9 +233,9 @@ public class TestTablePermissions { permission = userPerms.get(0); assertEquals("Permission should be for " + TEST_TABLE, TEST_TABLE, permission.getTableName()); - assertTrue("Permission should be for family " + TEST_FAMILY, + assertTrue("Permission should be for family " + Bytes.toString(TEST_FAMILY), Bytes.equals(TEST_FAMILY, permission.getFamily())); - assertTrue("Permission should be for qualifier " + TEST_QUALIFIER, + assertTrue("Permission should be for qualifier " + Bytes.toString(TEST_QUALIFIER), Bytes.equals(TEST_QUALIFIER, permission.getQualifier())); // check actions http://git-wip-us.apache.org/repos/asf/hbase/blob/dbcda15a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/MultiThreadedUpdaterWithACL.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/MultiThreadedUpdaterWithACL.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/MultiThreadedUpdaterWithACL.java index 30d425c..5554f59 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/MultiThreadedUpdaterWithACL.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/MultiThreadedUpdaterWithACL.java @@ -126,8 +126,8 @@ public class MultiThreadedUpdaterWithACL extends MultiThreadedUpdater { res = localTable.get(get); } } catch (IOException ie) { - LOG.warn("Failed to get the row for key = [" + get.getRow() + "], column family = [" - + Bytes.toString(cf) + "]", ie); + LOG.warn("Failed to get the row for key = [" + Bytes.toString(get.getRow()) + + "], column family = [" + Bytes.toString(cf) + "]", ie); } return res; } @@ -152,8 +152,8 @@ public class MultiThreadedUpdaterWithACL extends MultiThreadedUpdater { Result result = (Result) user.runAs(action); return result; } catch (Exception ie) { - LOG.warn("Failed to get the row for key = [" + get.getRow() + "], column family = [" - + Bytes.toString(cf) + "]", ie); + LOG.warn("Failed to get the row for key = [" + Bytes.toString(get.getRow()) + + "], column family = [" + Bytes.toString(cf) + "]", ie); } } // This means that no users were present