From 0808cb6355d54331f0395948eeb33ac161dd768c Mon Sep 17 00:00:00 2001 From: Uma Maheswara Rao G Date: Tue, 11 Aug 2020 00:01:58 -0700 Subject: [PATCH] HDFS-15515: mkdirs on fallback should throw IOE out instead of suppressing and returning false (#2205) * HDFS-15515: mkdirs on fallback should throw IOE out instead of suppressing and returning false * Used LambdaTestUtils#intercept in test (cherry picked from commit 99b120a06e27add0b9070c829cd828d41a150e8c) --- .../java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java | 7 +++---- .../hadoop/fs/viewfs/TestViewFileSystemLinkFallback.java | 5 ++++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java index b44148399dd..f545165f019 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java @@ -1382,7 +1382,7 @@ public class ViewFileSystem extends FileSystem { @Override public boolean mkdirs(Path dir, FsPermission permission) - throws AccessControlException, FileAlreadyExistsException { + throws IOException { if (theInternalDir.isRoot() && dir == null) { throw new FileAlreadyExistsException("/ already exits"); } @@ -1412,7 +1412,7 @@ public class ViewFileSystem extends FileSystem { .append(linkedFallbackFs.getUri()); LOG.debug(msg.toString(), e); } - return false; + throw e; } } @@ -1420,8 +1420,7 @@ public class ViewFileSystem extends FileSystem { } @Override - public boolean mkdirs(Path dir) - throws AccessControlException, FileAlreadyExistsException { + public boolean mkdirs(Path dir) throws IOException { return mkdirs(dir, null); } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemLinkFallback.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemLinkFallback.java index bd2b5af02ad..e7317608147 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemLinkFallback.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/fs/viewfs/TestViewFileSystemLinkFallback.java @@ -17,6 +17,7 @@ */ package org.apache.hadoop.fs.viewfs; +import static org.apache.hadoop.test.LambdaTestUtils.intercept; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -759,7 +760,9 @@ public class TestViewFileSystemLinkFallback extends ViewFileSystemBaseTest { cluster.shutdownNameNodes(); // Stopping fallback server // /user1/test1 does not exist in mount internal dir tree, it would // attempt to create in fallback. - assertFalse(vfs.mkdirs(nextLevelToInternalDir)); + intercept(IOException.class, () -> { + vfs.mkdirs(nextLevelToInternalDir); + }); cluster.restartNameNodes(); // should return true succeed when fallback fs is back to normal. assertTrue(vfs.mkdirs(nextLevelToInternalDir));