HADOOP-15968. ABFS: add try catch for UGI failure when initializing ABFS.

Contributed by Da Zhou.

(cherry picked from commit a8bbd818d5bc4762324bcdb7cf1fdd5c2f93891b)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2d2212a5
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2d2212a5
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2d2212a5

Branch: refs/heads/branch-3.2
Commit: 2d2212a50853b45a247f70d8a730ef0900bdf4d8
Parents: 7cfcabc
Author: Da Zhou <da.z...@microsoft.com>
Authored: Tue Dec 4 13:40:03 2018 +0000
Committer: Steve Loughran <ste...@apache.org>
Committed: Tue Dec 4 13:40:03 2018 +0000

----------------------------------------------------------------------
 .../apache/hadoop/fs/azurebfs/AzureBlobFileSystem.java |  7 ++++++-
 .../hadoop/fs/azurebfs/AzureBlobFileSystemStore.java   | 13 +++++++++----
 2 files changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/2d2212a5/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystem.java
----------------------------------------------------------------------
diff --git 
a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystem.java
 
b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystem.java
index 38b0c77..b4277c2 100644
--- 
a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystem.java
+++ 
b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystem.java
@@ -121,7 +121,12 @@ public class AzureBlobFileSystem extends FileSystem {
     }
 
     if (!abfsConfiguration.getSkipUserGroupMetadataDuringInitialization()) {
-      this.primaryUserGroup = userGroupInformation.getPrimaryGroupName();
+      try {
+        this.primaryUserGroup = userGroupInformation.getPrimaryGroupName();
+      } catch (IOException ex) {
+        LOG.error("Failed to get primary group for {}, using user name as 
primary group name", user);
+        this.primaryUserGroup = this.user;
+      }
     } else {
       //Provide a default group name
       this.primaryUserGroup = this.user;

http://git-wip-us.apache.org/repos/asf/hadoop/blob/2d2212a5/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystemStore.java
----------------------------------------------------------------------
diff --git 
a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystemStore.java
 
b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystemStore.java
index fc684ac..5f1692f 100644
--- 
a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystemStore.java
+++ 
b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/AzureBlobFileSystemStore.java
@@ -102,8 +102,8 @@ public class AzureBlobFileSystemStore {
   private AbfsClient client;
   private URI uri;
   private final UserGroupInformation userGroupInformation;
-  private final String userName;
-  private final String primaryUserGroup;
+  private String userName;
+  private String primaryUserGroup;
   private static final String DATE_TIME_PATTERN = "E, dd MMM yyyy HH:mm:ss 
'GMT'";
   private static final String XMS_PROPERTIES_ENCODING = "ISO-8859-1";
   private static final int LIST_MAX_RESULTS = 5000;
@@ -134,10 +134,15 @@ public class AzureBlobFileSystemStore {
     this.userName = userGroupInformation.getShortUserName();
 
     if (!abfsConfiguration.getSkipUserGroupMetadataDuringInitialization()) {
-      primaryUserGroup = userGroupInformation.getPrimaryGroupName();
+      try {
+        this.primaryUserGroup = userGroupInformation.getPrimaryGroupName();
+      } catch (IOException ex) {
+        LOG.error("Failed to get primary group for {}, using user name as 
primary group name", userName);
+        this.primaryUserGroup = userName;
+      }
     } else {
       //Provide a default group name
-      primaryUserGroup = userName;
+      this.primaryUserGroup = userName;
     }
 
     this.azureAtomicRenameDirSet = new HashSet<>(Arrays.asList(


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to