diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/Groups.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/Groups.java index 9fd39b09aba..11d8f2a58c5 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/Groups.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/Groups.java @@ -27,6 +27,8 @@ import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; +import org.apache.htrace.core.TraceScope; +import org.apache.htrace.core.Tracer; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Ticker; import com.google.common.cache.CacheBuilder; @@ -217,7 +219,20 @@ public class Groups { */ @Override public List load(String user) throws Exception { - List groups = fetchGroupList(user); + TraceScope scope = null; + Tracer tracer = Tracer.curThreadTracer(); + if (tracer != null) { + scope = tracer.newScope("Groups#fetchGroupList"); + scope.addKVAnnotation("user", user); + } + List groups = null; + try { + groups = fetchGroupList(user); + } finally { + if (scope != null) { + scope.close(); + } + } if (groups.isEmpty()) { if (isNegativeCacheEnabled()) {