Browse Source

HADOOP-8585. Fix initialization circularity between UserGroupInformation and HadoopConfiguration. Contributed by Colin Patrick McCabe.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1360498 13f79535-47bb-0310-9956-ffa450edef68
Aaron Myers 13 years ago
parent
commit
96d77c17cc

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -333,6 +333,9 @@ Branch-2 ( Unreleased changes )
 
     HADOOP-8587. HarFileSystem access of harMetaCache isn't threadsafe. (eli)
 
+    HADOOP-8585. Fix initialization circularity between UserGroupInformation
+    and HadoopConfiguration. (Colin Patrick McCabe via atm)
+
   BREAKDOWN OF HDFS-3042 SUBTASKS
 
     HADOOP-8220. ZKFailoverController doesn't handle failure to become active

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

@@ -456,9 +456,6 @@ public class UserGroupInformation {
     }
   }
 
-  public static final HadoopConfiguration HADOOP_LOGIN_CONFIG =
-      new HadoopConfiguration();
-
   /**
    * Represents a javax.security configuration that is created at runtime.
    */
@@ -630,10 +627,10 @@ public class UserGroupInformation {
         LoginContext login;
         if (isSecurityEnabled()) {
           login = newLoginContext(HadoopConfiguration.USER_KERBEROS_CONFIG_NAME,
-              subject, HADOOP_LOGIN_CONFIG);
+              subject, new HadoopConfiguration());
         } else {
           login = newLoginContext(HadoopConfiguration.SIMPLE_CONFIG_NAME, 
-              subject, HADOOP_LOGIN_CONFIG);
+              subject, new HadoopConfiguration());
         }
         login.login();
         loginUser = new UserGroupInformation(subject);
@@ -774,7 +771,7 @@ public class UserGroupInformation {
     long start = 0;
     try {
       login = newLoginContext(HadoopConfiguration.KEYTAB_KERBEROS_CONFIG_NAME,
-            subject, HADOOP_LOGIN_CONFIG);
+            subject, new HadoopConfiguration());
       start = System.currentTimeMillis();
       login.login();
       metrics.loginSuccess.add(System.currentTimeMillis() - start);
@@ -857,7 +854,7 @@ public class UserGroupInformation {
         // have the new credentials (pass it to the LoginContext constructor)
         login = newLoginContext(
             HadoopConfiguration.KEYTAB_KERBEROS_CONFIG_NAME, getSubject(),
-            HADOOP_LOGIN_CONFIG);
+            new HadoopConfiguration());
         LOG.info("Initiating re-login for " + keytabPrincipal);
         start = System.currentTimeMillis();
         login.login();
@@ -908,7 +905,7 @@ public class UserGroupInformation {
       //have the new credentials (pass it to the LoginContext constructor)
       login = 
         newLoginContext(HadoopConfiguration.USER_KERBEROS_CONFIG_NAME, 
-            getSubject(), HADOOP_LOGIN_CONFIG);
+            getSubject(), new HadoopConfiguration());
       LOG.info("Initiating re-login for " + getUserName());
       login.login();
       setLogin(login);
@@ -945,7 +942,7 @@ public class UserGroupInformation {
       
       LoginContext login = newLoginContext(
           HadoopConfiguration.KEYTAB_KERBEROS_CONFIG_NAME, subject,
-          HADOOP_LOGIN_CONFIG);
+          new HadoopConfiguration());
        
       start = System.currentTimeMillis();
       login.login();