You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Jian He (JIRA)" <ji...@apache.org> on 2014/08/01 23:19:39 UTC

[jira] [Commented] (YARN-2371) Wrong NMToken is issued when NM preserving restarts with containers running

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