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

Tsuyoshi OZAWA commented on YARN-2091:
--------------------------------------

Thanks for the suggestions, Bikas and Vinod. It would make sense too. I'll plan 
to separate pmem and vmem events and use kill reasons directly.

I have one discussion point: should we update ContainerExitStatus as Enum 
because EnumSets allow us to judge which events should be handled in AM easily? 
One concern is backward compatibility. This may be overkill. What do you think?

{code}
public enum ContainerExitStatus {
  ...
  KILL_EXCEEDED_VMEM(-103),
  KILL_EXCEEDED_PMEM(-104);

  public static EnumSet<ContainerExitStatus> AM_EVENTS = EnumSet.of(
      DISKS_FAILED,
      PREEMPTED,
      KILL_EXCEEDED_VMEM,
      KILL_EXCEEDED_PMEM
  );
}
{code}

> 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