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

Zhijie Shen updated YARN-966:
-----------------------------

    Attachment: YARN-966.1.patch

Created a patch:

1. ContainerImpl#getLocalizedResources returns null when it's not at LOCALIZED

2. ContainerLaunch#call checks null after calling 
ContainerImpl#getLocalizedResources. If null, it exits the thread, and sends 
CONTAINER_EXITED_WITH_FAILURE.

3. Corresponding test cases are added.
                
> The thread of ContainerLaunch#call will fail without any signal if 
> getLocalizedResources() is called when the container is not at LOCALIZED
> -------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: YARN-966
>                 URL: https://issues.apache.org/jira/browse/YARN-966
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Zhijie Shen
>            Assignee: Zhijie Shen
>         Attachments: YARN-966.1.patch
>
>
> In ContainerImpl.getLocalizedResources(), there's:
> {code}
> assert ContainerState.LOCALIZED == getContainerState(); // TODO: FIXME!!
> {code}
> ContainerImpl.getLocalizedResources() is called in ContainerLaunch.call(), 
> which is scheduled on a separate thread. If the container is not at LOCALIZED 
> (e.g. it is at KILLING, see YARN-906), an AssertError will be thrown and 
> fails the thread without notifying NM. Therefore, the container cannot 
> receive more events, which are supposed to be sent from 
> ContainerLaunch.call(), and move towards completion. 

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