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