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

Bikas Saha commented on YARN-2091:
----------------------------------

Instead of having the following if-else code everywhere, can we simply always 
use the "reason" from the kill event. That way if we add a different reason 
tomorrow (exceeded disk quota) then we dont have to find all these special 
cases.
{code}+      if (killEvent.getReason() == 
ContainerExitStatus.KILL_EXCEEDED_MEMORY) {
+        container.exitCode = killEvent.getReason();
+      } else {
+        container.exitCode = ExitCode.TERMINATED.getExitCode();
+      }{code}
As an exercise, we can find other cases of ContainerKillEvent and see if new 
enums (like exceeded_memory) can be added. Or if a suitable default value can 
be found. Clearly, if we are killing then there should be a reason.

> 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
>
>
> 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
(v6.2#6252)

Reply via email to