[ 
https://issues.apache.org/jira/browse/YARN-2371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14082973#comment-14082973
 ] 

Jian He commented on YARN-2371:
-------------------------------

The issue should be already fixed in trunk.
bq. "appAttemptId" instead of "container.getId().getApplicationAttemptId()" 
should be passed to "createNMToken".
This isn't correct. new attempt needs to talk with both container from previous 
attempt and container allocated by current attempt.

> Wrong NMToken is issued when NM preserving restarts with containers running
> ---------------------------------------------------------------------------
>
>                 Key: YARN-2371
>                 URL: https://issues.apache.org/jira/browse/YARN-2371
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: resourcemanager
>            Reporter: Hong Zhiguo
>            Assignee: Hong Zhiguo
>         Attachments: YARN-2371.patch
>
>
> When application is submitted with 
> "ApplicationSubmissionContext.getKeepContainersAcrossApplicationAttempts() == 
> true", and NM is restarted with containers running, wrong NMToken is issued 
> to AM through RegisterApplicationMasterResponse.
> See the NM log:
> {code}
> 2014-07-30 11:59:58,941 ERROR 
> org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl:
>  Unauthorized request to start container.-
> NMToken for application attempt : appattempt_1406691610864_0002_000001 was 
> used for starting container with container token issued for application 
> attempt : appattempt_1406691610864_0002_000002
> {code}
> The reason is in below code:
> {code} 
> createAndGetNMToken(String applicationSubmitter,
>       ApplicationAttemptId appAttemptId, Container container) {
>       ......
>           Token token =
>               createNMToken(container.getId().getApplicationAttemptId(),
>                 container.getNodeId(), applicationSubmitter);
>      ......
> }
> {code} 
> "appAttemptId" instead of "container.getId().getApplicationAttemptId()" 
> should be passed to "createNMToken".



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to