This is an automated email from the ASF dual-hosted git repository.

stevel pushed a commit to branch branch-3.3
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-3.3 by this push:
     new 3ef0e3d  HADOOP-17398. Skipping network I/O in S3A getFileStatus(/) 
breaks some tests (#2493)
3ef0e3d is described below

commit 3ef0e3d6155c9c3f0e7b133222db5e6449bacf23
Author: Mukund Thakur <[email protected]>
AuthorDate: Fri Nov 27 01:55:32 2020 +0530

    HADOOP-17398. Skipping network I/O in S3A getFileStatus(/) breaks some 
tests (#2493)
    
    
    Follow-on to HADOOP-17323.
    
    Contributed by Mukund Thakur.
---
 .../org/apache/hadoop/fs/s3a/tools/MarkerTool.java | 28 ++++++++++++++--------
 .../hadoop/fs/s3a/ITestS3ABucketExistence.java     |  6 +++--
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git 
a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/tools/MarkerTool.java
 
b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/tools/MarkerTool.java
index c1e4c8a..3280e67 100644
--- 
a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/tools/MarkerTool.java
+++ 
b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/tools/MarkerTool.java
@@ -282,16 +282,24 @@ public final class MarkerTool extends S3GuardTool {
     }
     FileSystem fs = path.getFileSystem(getConf());
     boolean nonAuth = command.getOpt(OPT_NONAUTH);
-    ScanResult result = execute(
-        new ScanArgsBuilder()
-            .withSourceFS(fs)
-            .withPath(path)
-            .withDoPurge(clean)
-            .withMinMarkerCount(expectedMin)
-            .withMaxMarkerCount(expectedMax)
-            .withLimit(limit)
-            .withNonAuth(nonAuth)
-            .build());
+    ScanResult result;
+    try {
+      result = execute(
+              new ScanArgsBuilder()
+                      .withSourceFS(fs)
+                      .withPath(path)
+                      .withDoPurge(clean)
+                      .withMinMarkerCount(expectedMin)
+                      .withMaxMarkerCount(expectedMax)
+                      .withLimit(limit)
+                      .withNonAuth(nonAuth)
+                      .build());
+    } catch (UnknownStoreException ex) {
+      // bucket doesn't exist.
+      // replace the stack trace with an error code.
+      throw new ExitUtil.ExitException(EXIT_NOT_FOUND,
+              ex.toString(), ex);
+    }
     if (verbose) {
       dumpFileSystemStatistics(out);
     }
diff --git 
a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3ABucketExistence.java
 
b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3ABucketExistence.java
index 8c215d7..934ad29 100644
--- 
a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3ABucketExistence.java
+++ 
b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3ABucketExistence.java
@@ -62,8 +62,10 @@ public class ITestS3ABucketExistence extends 
AbstractS3ATestBase {
 
     Path root = new Path(uri);
 
-    expectUnknownStore(
-        () -> fs.getFileStatus(root));
+    //See HADOOP-17323.
+    assertTrue("root path should always exist", fs.exists(root));
+    assertTrue("getFileStatus on root should always return a directory",
+            fs.getFileStatus(root).isDirectory());
 
     expectUnknownStore(
         () -> fs.listStatus(root));


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to