hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Lowe (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (YARN-8206) Sending a kill does not immediately kill docker containers
Date Mon, 21 May 2018 15:03:00 GMT

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

Jason Lowe commented on YARN-8206:

Thanks for updating the patch!  Unfortunately the patch no longer applies after YARN-8141
and needs to be updated.

allowPrivilegedContainerExecution will now log a warning every time a privileged container
is not requested which it did not do before.  I'm wondering if a warning log is really ever
needed here.  It's already logging when a privileged container is requested, so we can infer
if that log does not appear that the env variable was not set properly.

Nit: isContainerRequestedAsPrivileged can be simplified with Boolean.parseBoolean which handles
null directly.

Nit: Since handleContainerKill is being refactored it would be good to improve the debug logging
to leverage the SLF4J API so it doesn't have to do a debug check, i.e.: leveraging the \{\}
positional parameter syntax so the message does not have to be built even if the log message
will be discarded.

> Sending a kill does not immediately kill docker containers
> ----------------------------------------------------------
>                 Key: YARN-8206
>                 URL: https://issues.apache.org/jira/browse/YARN-8206
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Eric Badger
>            Assignee: Eric Badger
>            Priority: Major
>              Labels: Docker
>         Attachments: YARN-8206.001.patch, YARN-8206.002.patch, YARN-8206.003.patch, YARN-8206.004.patch,
YARN-8206.005.patch, YARN-8206.006.patch, YARN-8206.007.patch, YARN-8206.008.patch, YARN-8206.009.patch,
> {noformat}
>         if (ContainerExecutor.Signal.KILL.equals(signal)
>             || ContainerExecutor.Signal.TERM.equals(signal)) {
>           handleContainerStop(containerId, env);
> {noformat}
> Currently in the code, we are handling both SIGKILL and SIGTERM as equivalent for docker
containers. However, they should actually be separate. When YARN sends a SIGKILL to a process,
it means for it to die immediately and not sit around waiting for anything. This ensures an
immediate reclamation of resources. Additionally, if a SIGTERM is sent before the SIGKILL,
the task might not handle the signal correctly, and will then end up as a failed task instead
of a killed task. This is especially bad for preemption. 

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org

View raw message