Tsuyoshi OZAWA commented on YARN-2091:

[~bikassaha], thank you for the comments.

 Should we check if the exitCode has already been set (eg. via a kill event) 
and if its not set then set it from exitEvent? How can we check if the exitCode 
has not been set? Maybe have some uninitialized/invalid default value.

IIUC, we can distinguish its set value from default value by checking whether 
exitCode is ContainerExitStatus.INVALID because default value of {{exitCode}} 
is ContainerExitStatus.INVALID. Do you have any comment about this?
  if (container.exitCode == ContainerExitStatus.INVALID) {
    container.exitCode = exitEvent.getExitCode();

About the new exit status, I'll update comments in the next patch.

> Add ContainerExitStatus.KILL_EXCEEDED_MEMORY and pass it to app masters
> -----------------------------------------------------------------------
>                 Key: YARN-2091
>                 URL: https://issues.apache.org/jira/browse/YARN-2091
>             Project: Hadoop YARN
>          Issue Type: Task
>            Reporter: Bikas Saha
>            Assignee: Tsuyoshi OZAWA
>         Attachments: YARN-2091.1.patch, YARN-2091.2.patch, YARN-2091.3.patch, 
> YARN-2091.4.patch, YARN-2091.5.patch, YARN-2091.6.patch
> Currently, the AM cannot programmatically determine if the task was killed 
> due to using excessive memory. The NM kills it without passing this 
> information in the container status back to the RM. So the AM cannot take any 
> action here. The jira tracks adding this exit status and passing it from the 
> NM to the RM and then the AM. In general, there may be other such actions 
> taken by YARN that are currently opaque to the AM. 

This message was sent by Atlassian JIRA

Reply via email to