Karthik Kambatla commented on YARN-3464:

Thanks for uploading the patch, [~zxu]. 

# ContainerImpl: unrelated to the patch, 
{{container.metrics.endInitingContainer()}} should likely move up to right 
after {{container.sendLaunchEvent()}}
# Nit: Simplify javadoc for 
{{ResourceLocalizationService#handleContainerResourcesLocalized}}. How about 
"Once a container's resources are localized, kill the corresponding {@link 
# ResourceLocalizationService.LocalizerRunner#update - mostly unrelated to this 
## Rename to {{processHeartbeat}}?
## I don't see the point of a LocalizerAction variable initialized to DIE. How 
about changing that to a {{boolean fetchFailed}}? 

> Race condition in LocalizerRunner causes container localization timeout.
> ------------------------------------------------------------------------
>                 Key: YARN-3464
>                 URL: https://issues.apache.org/jira/browse/YARN-3464
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: nodemanager
>            Reporter: zhihai xu
>            Assignee: zhihai xu
>            Priority: Critical
>         Attachments: YARN-3464.000.patch
> Race condition in LocalizerRunner causes container localization timeout.
> Currently LocalizerRunner will kill the ContainerLocalizer when pending list 
> for LocalizerResourceRequestEvent is empty.
> {code}
>       } else if (pending.isEmpty()) {
>         action = LocalizerAction.DIE;
>       }
> {code}
> If a LocalizerResourceRequestEvent is added after LocalizerRunner kill the 
> ContainerLocalizer due to empty pending list, this 
> LocalizerResourceRequestEvent will never be handled.
> Without ContainerLocalizer, LocalizerRunner#update will never be called.
> The container will stay at LOCALIZING state, until the container is killed by 

This message was sent by Atlassian JIRA

Reply via email to