[ 
https://issues.apache.org/jira/browse/YARN-937?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alejandro Abdelnur updated YARN-937:
------------------------------------

    Attachment: YARN-937.patch

Updated patch fixing typos and making sure the jobtoken file written by the 
UnmanagedAMLauncher is readonly by the current user (in addition to the 
original behavior of being deleted on JVM exit).

bq. Not quite sure why we have manually use the RM address to re-create the 
token....

We need to get the scheduler HOST:PORT to set the service name, from the 
ClientRMProxy we can not get it, can we? In the case of failover, if we use the 
same patterns/logic as HDFS failover, instead having concrete HOST:PORT 
services, we will have logical names that will be resolve appropriately 
(commented on similar topic in YARN-701 earlier today).

bq. If the queue ACL's give identical access...

We can do that. However, as I see it, being able to schedule resources should 
be done by the AM process itself and only it. the ACLs are for who/what can 
manage the AM. (while we can not prevent an AM to to pass the token to another 
process and then have 2 processes doing scheduling for the same AM, this will 
definitely break the AMs. But we cannot stop this from happening if somebody is 
doing something stupid. The best we can do is to check it the same user).

bq. Should we return AMRMToken in getApplicationReport() only if the 
currentAppAttempt is in a waiting to register state? ...

Unless I'm missing something, these initial AM state transitions happen in the 
RM without interaction from the AM, we cannot guarantee the AM will query the 
RM on that particular state. Thus returning it when in RUNNING is safe. We 
could return it only once, but that would mean we have to keep track of that on 
the RMAppImpl. And what is there is a failure on the AM before it manages to 
'save' it, and the AM needs to re-get it?

bq. Similarly the AMLauncher could delete the token file after the app has 
entered running state based on getApplicationReport()?

This would mean the AMLauncher would have to have a callback from the forked AM 
process. And still the window of existence of the file is there, so you are 
still 'vulnerable' to that file being stolen. The current patch, as mentioned 
above makes this file user readable only.

                
> Fix unmanaged AM in non-secure/secure setup post YARN-701
> ---------------------------------------------------------
>
>                 Key: YARN-937
>                 URL: https://issues.apache.org/jira/browse/YARN-937
>             Project: Hadoop YARN
>          Issue Type: Bug
>    Affects Versions: 2.1.0-beta
>            Reporter: Arun C Murthy
>            Assignee: Alejandro Abdelnur
>            Priority: Blocker
>             Fix For: 2.1.0-beta
>
>         Attachments: YARN-937.patch, YARN-937.patch, YARN-937.patch, 
> YARN-937.patch
>
>
> Fix unmanaged AM in non-secure/secure setup post YARN-701 since app-tokens 
> will be used in both scenarios.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to