This is an automated email from the ASF dual-hosted git repository. bharat pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git
The following commit(s) were added to refs/heads/master by this push: new 8541c56 HDDS-2368. TestOzoneManagerDoubleBufferWithDummyResponse failing intermittently (#93) 8541c56 is described below commit 8541c5694efebb58f53cf4665d3e4e6e4a12845c Author: Doroszlai, Attila <6454655+adorosz...@users.noreply.github.com> AuthorDate: Sun Oct 27 08:13:06 2019 +0100 HDDS-2368. TestOzoneManagerDoubleBufferWithDummyResponse failing intermittently (#93) --- ...tOzoneManagerDoubleBufferWithDummyResponse.java | 69 ++++++++++------------ 1 file changed, 30 insertions(+), 39 deletions(-) diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis/TestOzoneManagerDoubleBufferWithDummyResponse.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis/TestOzoneManagerDoubleBufferWithDummyResponse.java index 56c806a..d8816d8 100644 --- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis/TestOzoneManagerDoubleBufferWithDummyResponse.java +++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/ratis/TestOzoneManagerDoubleBufferWithDummyResponse.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -23,7 +23,6 @@ import java.util.UUID; import java.util.concurrent.atomic.AtomicLong; import org.junit.After; -import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -40,11 +39,13 @@ import org.apache.hadoop.ozone.om.OMMetadataManager; import org.apache.hadoop.ozone.om.OmMetadataManagerImpl; import org.apache.hadoop.ozone.om.helpers.OmBucketInfo; import org.apache.hadoop.ozone.om.response.OMClientResponse; -import org.apache.hadoop.test.GenericTestUtils; import org.apache.hadoop.util.Time; import org.apache.hadoop.hdds.utils.db.BatchOperation; import static org.apache.hadoop.hdds.HddsConfigKeys.OZONE_METADATA_DIRS; +import static org.apache.hadoop.test.GenericTestUtils.waitFor; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; /** * This class tests OzoneManagerDoubleBuffer implementation with @@ -54,11 +55,9 @@ public class TestOzoneManagerDoubleBufferWithDummyResponse { private OMMetadataManager omMetadataManager; private OzoneManagerDoubleBuffer doubleBuffer; - private AtomicLong trxId = new AtomicLong(0); - private OzoneManagerRatisSnapshot ozoneManagerRatisSnapshot; + private final AtomicLong trxId = new AtomicLong(0); private long lastAppliedIndex; - @Rule public TemporaryFolder folder = new TemporaryFolder(); @@ -69,7 +68,7 @@ public class TestOzoneManagerDoubleBufferWithDummyResponse { folder.newFolder().getAbsolutePath()); omMetadataManager = new OmMetadataManagerImpl(configuration); - ozoneManagerRatisSnapshot = index -> { + OzoneManagerRatisSnapshot ozoneManagerRatisSnapshot = index -> { lastAppliedIndex = index; }; doubleBuffer = new OzoneManagerDoubleBuffer(omMetadataManager, @@ -85,57 +84,49 @@ public class TestOzoneManagerDoubleBufferWithDummyResponse { * This tests add's 100 bucket creation responses to doubleBuffer, and * check OM DB bucket table has 100 entries or not. In addition checks * flushed transaction count is matching with expected count or not. - * @throws Exception */ @Test(timeout = 300_000) public void testDoubleBufferWithDummyResponse() throws Exception { String volumeName = UUID.randomUUID().toString(); int bucketCount = 100; - OzoneManagerDoubleBufferMetrics ozoneManagerDoubleBufferMetrics = + OzoneManagerDoubleBufferMetrics metrics = doubleBuffer.getOzoneManagerDoubleBufferMetrics(); // As we have not flushed/added any transactions, all metrics should have // value zero. - Assert.assertTrue(ozoneManagerDoubleBufferMetrics - .getTotalNumOfFlushOperations() == 0); - Assert.assertTrue(ozoneManagerDoubleBufferMetrics - .getTotalNumOfFlushedTransactions() == 0); - Assert.assertTrue(ozoneManagerDoubleBufferMetrics - .getMaxNumberOfTransactionsFlushedInOneIteration() == 0); + assertEquals(0, metrics.getTotalNumOfFlushOperations()); + assertEquals(0, metrics.getTotalNumOfFlushedTransactions()); + assertEquals(0, metrics.getMaxNumberOfTransactionsFlushedInOneIteration()); for (int i=0; i < bucketCount; i++) { - doubleBuffer.add(createDummyBucketResponse(volumeName, - UUID.randomUUID().toString()), trxId.incrementAndGet()); + doubleBuffer.add(createDummyBucketResponse(volumeName), + trxId.incrementAndGet()); } - GenericTestUtils.waitFor(() -> - doubleBuffer.getFlushedTransactionCount() == bucketCount, 100, - 60000); - - Assert.assertTrue(ozoneManagerDoubleBufferMetrics - .getTotalNumOfFlushOperations() > 0); - Assert.assertTrue(ozoneManagerDoubleBufferMetrics - .getTotalNumOfFlushedTransactions() == bucketCount); - Assert.assertTrue(ozoneManagerDoubleBufferMetrics - .getMaxNumberOfTransactionsFlushedInOneIteration() > 0); - Assert.assertTrue(omMetadataManager.countRowsInTable( - omMetadataManager.getBucketTable()) == (bucketCount)); - Assert.assertTrue(doubleBuffer.getFlushIterations() > 0); + waitFor(() -> metrics.getTotalNumOfFlushedTransactions() == bucketCount, + 100, 60000); + + assertTrue(metrics.getTotalNumOfFlushOperations() > 0); + assertEquals(bucketCount, doubleBuffer.getFlushedTransactionCount()); + assertTrue(metrics.getMaxNumberOfTransactionsFlushedInOneIteration() > 0); + assertEquals(bucketCount, omMetadataManager.countRowsInTable( + omMetadataManager.getBucketTable())); + assertTrue(doubleBuffer.getFlushIterations() > 0); // Check lastAppliedIndex is updated correctly or not. - Assert.assertEquals(bucketCount, lastAppliedIndex); + assertEquals(bucketCount, lastAppliedIndex); } /** * Create DummyBucketCreate response. - * @param volumeName - * @param bucketName - * @return OMDummyCreateBucketResponse */ private OMDummyCreateBucketResponse createDummyBucketResponse( - String volumeName, String bucketName) { + String volumeName) { OmBucketInfo omBucketInfo = - OmBucketInfo.newBuilder().setVolumeName(volumeName) - .setBucketName(bucketName).setCreationTime(Time.now()).build(); + OmBucketInfo.newBuilder() + .setVolumeName(volumeName) + .setBucketName(UUID.randomUUID().toString()) + .setCreationTime(Time.now()) + .build(); return new OMDummyCreateBucketResponse(omBucketInfo, OMResponse.newBuilder() .setCmdType(OzoneManagerProtocolProtos.Type.CreateBucket) @@ -148,10 +139,10 @@ public class TestOzoneManagerDoubleBufferWithDummyResponse { /** * DummyCreatedBucket Response class used in testing. */ - public static class OMDummyCreateBucketResponse extends OMClientResponse { + private static class OMDummyCreateBucketResponse extends OMClientResponse { private final OmBucketInfo omBucketInfo; - public OMDummyCreateBucketResponse(OmBucketInfo omBucketInfo, + OMDummyCreateBucketResponse(OmBucketInfo omBucketInfo, OMResponse omResponse) { super(omResponse); this.omBucketInfo = omBucketInfo; --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-commits-h...@hadoop.apache.org