HADOOP-12540. TestAzureFileSystemInstrumentation#testClientErrorMetrics fails intermittently due to assumption that a lease error will be thrown. Contributed by Gaurav Kanade.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0fb1867f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0fb1867f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0fb1867f Branch: refs/heads/HDFS-7240 Commit: 0fb1867fd62b5df664ad66386d6067db8fbf2317 Parents: e2a5441 Author: cnauroth <cnaur...@apache.org> Authored: Wed Nov 4 10:19:04 2015 -0800 Committer: cnauroth <cnaur...@apache.org> Committed: Wed Nov 4 10:28:44 2015 -0800 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 4 ++++ .../TestAzureFileSystemInstrumentation.java | 25 +++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/0fb1867f/hadoop-common-project/hadoop-common/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index efb73f4..dd70947 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -1320,6 +1320,10 @@ Release 2.8.0 - UNRELEASED HADOOP-12542. TestDNS fails on Windows after HADOOP-12437. (cnauroth) + HADOOP-12540. TestAzureFileSystemInstrumentation#testClientErrorMetrics + fails intermittently due to assumption that a lease error will be thrown. + (Gaurav Kanade via cnauroth) + OPTIMIZATIONS HADOOP-12051. ProtobufRpcEngine.invoke() should use Exception.toString() http://git-wip-us.apache.org/repos/asf/hadoop/blob/0fb1867f/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/metrics/TestAzureFileSystemInstrumentation.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/metrics/TestAzureFileSystemInstrumentation.java b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/metrics/TestAzureFileSystemInstrumentation.java index 896ec1b..0c9126c 100644 --- a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/metrics/TestAzureFileSystemInstrumentation.java +++ b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/metrics/TestAzureFileSystemInstrumentation.java @@ -48,6 +48,7 @@ import org.apache.hadoop.fs.azure.AzureBlobStorageTestAccount; import org.apache.hadoop.fs.azure.AzureException; import org.apache.hadoop.fs.azure.AzureNativeFileSystemStore; import org.apache.hadoop.fs.azure.NativeAzureFileSystem; +import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.metrics2.MetricsRecordBuilder; import org.apache.hadoop.metrics2.MetricsTag; import org.hamcrest.BaseMatcher; @@ -405,22 +406,30 @@ public class TestAzureFileSystemInstrumentation { @Test public void testClientErrorMetrics() throws Exception { - String directoryName = "metricsTestDirectory_ClientError"; - Path directoryPath = new Path("/" + directoryName); - assertTrue(fs.mkdirs(directoryPath)); - String leaseID = testAccount.acquireShortLease(directoryName); + String fileName = "metricsTestFile_ClientError"; + Path filePath = new Path("/"+fileName); + final int FILE_SIZE = 100; + OutputStream outputStream = null; + String leaseID = null; try { + // Create a file + outputStream = fs.create(filePath); + leaseID = testAccount.acquireShortLease(fileName); try { - fs.delete(directoryPath, true); - assertTrue("Should've thrown.", false); + outputStream.write(new byte[FILE_SIZE]); + outputStream.close(); + assertTrue("Should've thrown", false); } catch (AzureException ex) { assertTrue("Unexpected exception: " + ex, - ex.getMessage().contains("lease")); + ex.getMessage().contains("lease")); } assertEquals(1, AzureMetricsTestUtil.getLongCounterValue(getInstrumentation(), WASB_CLIENT_ERRORS)); assertEquals(0, AzureMetricsTestUtil.getLongCounterValue(getInstrumentation(), WASB_SERVER_ERRORS)); } finally { - testAccount.releaseLease(leaseID, directoryName); + if(leaseID != null){ + testAccount.releaseLease(leaseID, fileName); + } + IOUtils.closeStream(outputStream); } }