You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by da...@apache.org on 2013/07/19 16:07:49 UTC
svn commit: r1504882 - in
/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common:
CHANGES.txt
src/main/java/org/apache/hadoop/security/UserGroupInformation.java
Author: daryn
Date: Fri Jul 19 14:07:49 2013
New Revision: 1504882
URL: http://svn.apache.org/r1504882
Log:
HADOOP-9748. Reduce blocking on UGI.ensureInitialized (daryn)
Modified:
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/UserGroupInformation.java
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1504882&r1=1504881&r2=1504882&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt Fri Jul 19 14:07:49 2013
@@ -10,6 +10,8 @@ Release 0.23.10 - UNRELEASED
OPTIMIZATIONS
+ HADOOP-9748. Reduce blocking on UGI.ensureInitialized (daryn)
+
BUG FIXES
Release 0.23.9 - 2013-07-08
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/UserGroupInformation.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/UserGroupInformation.java?rev=1504882&r1=1504881&r2=1504882&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/UserGroupInformation.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/UserGroupInformation.java Fri Jul 19 14:07:49 2013
@@ -190,7 +190,6 @@ public class UserGroupInformation {
/** Metrics to track UGI activity */
static UgiMetrics metrics = UgiMetrics.create();
/** Are the static variables that depend on configuration initialized? */
- private static boolean isInitialized = false;
/** Should we use Kerberos configuration? */
private static boolean useKerberos;
/** Server-side groups fetching service */
@@ -210,9 +209,13 @@ public class UserGroupInformation {
* A method to initialize the fields that depend on a configuration.
* Must be called before useKerberos or groups is used.
*/
- private static synchronized void ensureInitialized() {
- if (!isInitialized) {
- initialize(new Configuration(), KerberosName.hasRulesBeenSet());
+ private static void ensureInitialized() {
+ if (conf == null) {
+ synchronized(UserGroupInformation.class) {
+ if (conf == null) { // someone might have beat us
+ initialize(new Configuration(), KerberosName.hasRulesBeenSet());
+ }
+ }
}
}
@@ -252,7 +255,6 @@ public class UserGroupInformation {
if (!(groups instanceof TestingGroups)) {
groups = Groups.getUserToGroupsMappingService(conf);
}
- isInitialized = true;
UserGroupInformation.conf = conf;
}