[ 
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)

Reply via email to