[ https://issues.apache.org/jira/browse/YARN-2892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14225840#comment-14225840 ]
Sevada Abraamyan commented on YARN-2892: ---------------------------------------- [~rohithsharma] thanks for pointing this out. It also looks like there are other instances in ClientRMService unrelated to createAndGetApplicationReport. For example the following code in getApplications is incorrect as well. {code} public GetApplicationsResponse getApplications( ... if (scope == ApplicationsRequestScope.OWN && !callerUGI.getUserName().equals(application.getUser())) { continue; } ... {code} I'll do a more thorough sweep of ClientRMService and update the patch. Also, while I'm working on this, maybe it might be good to revist why getQueueInfo passes a null username to createAndGetApplicationReport. Is there any reason we wouldn't want the owner of the application to get the AMRMTokens in the getQueueInfo request? > Unable to get AMRMToken in unmanaged AM when using a secure cluster > ------------------------------------------------------------------- > > Key: YARN-2892 > URL: https://issues.apache.org/jira/browse/YARN-2892 > Project: Hadoop YARN > Issue Type: Bug > Components: resourcemanager > Reporter: Sevada Abraamyan > Assignee: Sevada Abraamyan > Attachments: YARN-2892.patch > > > An AMRMToken is retrieved from the ApplicationReport by the YarnClient. > When the RM creates the ApplicationReport and sends it back to the client it > makes a simple security check whether it should include the AMRMToken in the > report (See createAndGetApplicationReport in RMAppImpl).This security check > verifies that the user who submitted the original application is the same > user who is requesting the ApplicationReport. If they are indeed the same > user then it includes the AMRMToken, otherwise it does not include it. > The problem arises from the fact that when an application is submitted, the > RM saves the short username of the user who created the application (See > submitApplication in ClientRmService). Afterwards when the ApplicationReport > is requested, the system tries to match the full username of the requester > against the previously stored short username. > In a secure cluster using Kerberos this check fails because the principle is > stripped from the username when we request a short username. So for example > the short username might be "Foo" whereas the full username is > "f...@company.com" > Note: A very similar problem has been previously reported > ([Yarn-2232|https://issues.apache.org/jira/browse/YARN-2232]) -- This message was sent by Atlassian JIRA (v6.3.4#6332)