Browse Source

Skip the proxy user check if the ugi has not been initialized. Contributed by Daryn Sharp

(cherry picked from commit 73e9120ad79c73703de21e0084591861813f3279)
Rushabh Shah 7 years ago
parent
commit
603ca19a17

+ 1 - 1
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java

@@ -256,7 +256,7 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
     }
 
     private static boolean getRestrictParserDefault(Object resource) {
-      if (resource instanceof String) {
+      if (resource instanceof String || !UserGroupInformation.isInitialized()) {
         return false;
       }
       UserGroupInformation user;

+ 6 - 2
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/UserGroupInformation.java

@@ -287,14 +287,18 @@ public class UserGroupInformation {
   public static final String HADOOP_TOKEN_FILE_LOCATION = 
     "HADOOP_TOKEN_FILE_LOCATION";
   
+  public static boolean isInitialized() {
+    return conf != null;
+  }
+
   /** 
    * A method to initialize the fields that depend on a configuration.
    * Must be called before useKerberos or groups is used.
    */
   private static void ensureInitialized() {
-    if (conf == null) {
+    if (!isInitialized()) {
       synchronized(UserGroupInformation.class) {
-        if (conf == null) { // someone might have beat us
+        if (!isInitialized()) { // someone might have beat us
           initialize(new Configuration(), false);
         }
       }