Repository: hadoop Updated Branches: refs/heads/branch-2 72773f8ea -> b4c8729cf
HDFS-10463. TestRollingFileSystemSinkWithHdfs needs some cleanup. (Daniel Templeton via kasha) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/b4c8729c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/b4c8729c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/b4c8729c Branch: refs/heads/branch-2 Commit: b4c8729cf96a927b1ac6e1ebb8b694d58c7c2efa Parents: 72773f8 Author: Karthik Kambatla <ka...@cloudera.com> Authored: Thu May 26 14:39:07 2016 -0700 Committer: Karthik Kambatla <ka...@cloudera.com> Committed: Thu May 26 14:39:07 2016 -0700 ---------------------------------------------------------------------- .../sink/RollingFileSystemSinkTestBase.java | 8 +- .../sink/TestRollingFileSystemSinkWithHdfs.java | 83 ++++++++++++-------- 2 files changed, 56 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/b4c8729c/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/sink/RollingFileSystemSinkTestBase.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/sink/RollingFileSystemSinkTestBase.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/sink/RollingFileSystemSinkTestBase.java index 4ac10f2..8c366db 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/sink/RollingFileSystemSinkTestBase.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/sink/RollingFileSystemSinkTestBase.java @@ -221,8 +221,12 @@ public class RollingFileSystemSinkTestBase { mm1.testMetric2.incr(2); ms.publishMetricsNow(); // publish the metrics - ms.stop(); - ms.shutdown(); + + try { + ms.stop(); + } finally { + ms.shutdown(); + } return readLogFile(path, then, count); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/b4c8729c/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/metrics2/sink/TestRollingFileSystemSinkWithHdfs.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/metrics2/sink/TestRollingFileSystemSinkWithHdfs.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/metrics2/sink/TestRollingFileSystemSinkWithHdfs.java index 9c80b2d..f835b3f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/metrics2/sink/TestRollingFileSystemSinkWithHdfs.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/metrics2/sink/TestRollingFileSystemSinkWithHdfs.java @@ -109,7 +109,7 @@ public class TestRollingFileSystemSinkWithHdfs public void testSilentAppend() throws Exception { String path = "hdfs://" + cluster.getNameNode().getHostAndPort() + "/tmp"; - assertExtraContents(doAppendTest(path, false, true, 1)); + assertExtraContents(doAppendTest(path, true, true, 1)); } /** @@ -159,8 +159,11 @@ public class TestRollingFileSystemSinkWithHdfs assertTrue("No exception was generated while writing metrics " + "even though HDFS was unavailable", MockSink.errored); - ms.stop(); - ms.shutdown(); + try { + ms.stop(); + } finally { + ms.shutdown(); + } } /** @@ -183,13 +186,14 @@ public class TestRollingFileSystemSinkWithHdfs try { ms.stop(); + fail("No exception was generated while stopping sink " + "even though HDFS was unavailable"); } catch (MetricsException ex) { // Expected + } finally { + ms.shutdown(); } - - ms.shutdown(); } /** @@ -215,8 +219,11 @@ public class TestRollingFileSystemSinkWithHdfs + "while HDFS was unavailable, even though the sink is set to " + "ignore errors", MockSink.errored); - ms.stop(); - ms.shutdown(); + try { + ms.stop(); + } finally { + ms.shutdown(); + } } /** @@ -237,13 +244,15 @@ public class TestRollingFileSystemSinkWithHdfs shutdownHdfs(); MockSink.errored = false; - ms.stop(); - - assertFalse("An exception was generated stopping sink " - + "while HDFS was unavailable, even though the sink is set to " - + "ignore errors", MockSink.errored); + try { + ms.stop(); - ms.shutdown(); + assertFalse("An exception was generated stopping sink " + + "while HDFS was unavailable, even though the sink is set to " + + "ignore errors", MockSink.errored); + } finally { + ms.shutdown(); + } } /** @@ -272,29 +281,37 @@ public class TestRollingFileSystemSinkWithHdfs int count = 0; - // Sleep until the flusher has run. This should never actually need to - // sleep, but the sleep is here to make sure this test isn't flakey. - while (!RollingFileSystemSink.hasFlushed) { - Thread.sleep(10L); + try { + // Sleep until the flusher has run. This should never actually need to + // sleep, but the sleep is here to make sure this test isn't flakey. + while (!RollingFileSystemSink.hasFlushed) { + Thread.sleep(10L); + + if (++count > 1000) { + fail("Flush thread did not run within 10 seconds"); + } + } - if (++count > 1000) { - fail("Flush thread did not run within 10 seconds"); + Calendar now = Calendar.getInstance(); + Path currentDir = new Path(path, DATE_FORMAT.format(now.getTime()) + "00"); + FileSystem fs = FileSystem.newInstance(new URI(path), new Configuration()); + Path currentFile = + findMostRecentLogFile(fs, new Path(currentDir, getLogFilename())); + FileStatus status = fs.getFileStatus(currentFile); + + // Each metrics record is 118+ bytes, depending on hostname + assertTrue("The flusher thread didn't flush the log contents. Expected " + + "at least 236 bytes in the log file, but got " + status.getLen(), + status.getLen() >= 236); + } finally { + RollingFileSystemSink.forceFlush = false; + + try { + ms.stop(); + } finally { + ms.shutdown(); } } - - Calendar now = Calendar.getInstance(); - Path currentDir = new Path(path, DATE_FORMAT.format(now.getTime()) + "00"); - FileSystem fs = FileSystem.newInstance(new URI(path), new Configuration()); - Path currentFile = - findMostRecentLogFile(fs, new Path(currentDir, getLogFilename())); - FileStatus status = fs.getFileStatus(currentFile); - - // Each metrics record is 118+ bytes, depending on hostname - assertTrue("The flusher thread didn't flush the log contents. Expected " - + "at least 236 bytes in the log file, but got " + status.getLen(), - status.getLen() >= 236); - - ms.stop(); } /** --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org