Jian He commented on YARN-2997:

bq. we may run into a situation where we report two different ContainerStatus 
with same ID
I think this is not possible given that we are looping 
{{this.context.getContainers()}} which is based on containerId to Container 
map. Or we can just use a list.
bq. So in my opinion, that could be a potential leak.
I see. then we should send the pendingCompletedContainers in 
getNMContainerStatuses method too.  and {{pendingCompletedContainers.clear()}}; 
 should be put after {{if (response.getNodeAction() == NodeAction.RESYNC) }}, 
or we can just put it at the last line of 
removeOrTrackCompletedContainersFromContext so as to avoid the newly added 

> NM keeps sending finished containers to RM until app is finished
> ----------------------------------------------------------------
>                 Key: YARN-2997
>                 URL: https://issues.apache.org/jira/browse/YARN-2997
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: nodemanager
>    Affects Versions: 2.6.0
>            Reporter: Chengbing Liu
>         Attachments: YARN-2997.2.patch, YARN-2997.3.patch, YARN-2997.patch
> We have seen in RM log a lot of
> {quote}
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler: 
> Null container completed...
> {quote}
> It is caused by NM sending completed containers repeatedly until the app is 
> finished. On the RM side, the container is already released, hence 
> {{getRMContainer}} returns null.

This message was sent by Atlassian JIRA

Reply via email to