|
@@ -88,6 +88,7 @@ import org.apache.hadoop.security.authentication.util.KerberosUtil;
|
|
|
import org.apache.hadoop.security.token.Token;
|
|
|
import org.apache.hadoop.security.token.TokenIdentifier;
|
|
|
import org.apache.hadoop.util.Shell;
|
|
|
+import org.apache.hadoop.util.StringUtils;
|
|
|
import org.apache.hadoop.util.Time;
|
|
|
|
|
|
import org.slf4j.Logger;
|
|
@@ -1934,10 +1935,7 @@ public class UserGroupInformation {
|
|
|
@InterfaceAudience.Public
|
|
|
@InterfaceStability.Evolving
|
|
|
public <T> T doAs(PrivilegedAction<T> action) {
|
|
|
- if (LOG.isDebugEnabled()) {
|
|
|
- LOG.debug("PrivilegedAction [as: {}][action: {}]", this, action,
|
|
|
- new Exception());
|
|
|
- }
|
|
|
+ tracePrivilegedAction(action);
|
|
|
return Subject.doAs(subject, action);
|
|
|
}
|
|
|
|
|
@@ -1957,10 +1955,7 @@ public class UserGroupInformation {
|
|
|
public <T> T doAs(PrivilegedExceptionAction<T> action
|
|
|
) throws IOException, InterruptedException {
|
|
|
try {
|
|
|
- if (LOG.isDebugEnabled()) {
|
|
|
- LOG.debug("PrivilegedAction [as: {}][action: {}]", this, action,
|
|
|
- new Exception());
|
|
|
- }
|
|
|
+ tracePrivilegedAction(action);
|
|
|
return Subject.doAs(subject, action);
|
|
|
} catch (PrivilegedActionException pae) {
|
|
|
Throwable cause = pae.getCause();
|
|
@@ -1982,6 +1977,14 @@ public class UserGroupInformation {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void tracePrivilegedAction(Object action) {
|
|
|
+ if (LOG.isTraceEnabled()) {
|
|
|
+ // would be nice if action included a descriptive toString()
|
|
|
+ LOG.trace("PrivilegedAction [as: {}][action: {}][from: {}]", this, action,
|
|
|
+ StringUtils.getStackTrace(new Throwable()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Log current UGI and token information into specified log.
|
|
|
* @param ugi - UGI
|