You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "Chandni Singh (JIRA)" <ji...@apache.org> on 2018/08/23 21:16:00 UTC
[jira] [Updated] (YARN-8706) DelayedProcessKiller is executed for
Docker containers even though docker stop sends a KILL signal after the
specified grace period
[ https://issues.apache.org/jira/browse/YARN-8706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chandni Singh updated YARN-8706:
--------------------------------
Description:
{{DockerStopCommand}} adds a grace period of 10 seconds.
10 seconds is also the default grace time use by docker stop
[https://docs.docker.com/engine/reference/commandline/stop/]
Documentation of the docker stop:
{quote}the main process inside the container will receive {{SIGTERM}}, and after a grace period, {{SIGKILL}}.
{quote}
There is a {{DelayedProcessKiller}} in {{ContainerExcecutor}} which executes for all containers after a delay when {{sleepDelayBeforeSigKill>0}}. By default this is set to {{250 milliseconds}} and so irrespective of the container type, it will always get executed.
For a docker container, {{docker stop}} takes care of sending a {{SIGKILL}} after the grace period
- when sleepDelayBeforeSigKill > 10 seconds, then there is no point of executing DelayedProcessKiller
- when sleepDelayBeforeSigKill < 1 second, then the grace period should be least, which is 1 second, because anyways we are forcing kill after 250 ms
was:
{{DockerStopCommand}} adds a grace period of 10 seconds.
10 seconds is also the default grace time use by docker stop
[https://docs.docker.com/engine/reference/commandline/stop/]
Documentation of the docker stop:
{quote}the main process inside the container will receive {{SIGTERM}}, and after a grace period, {{SIGKILL}}.
{quote}
There is a {{DelayedProcessKiller}} in {{ContainerExcecutor}} which executes for all containers after a delay when {{sleepDelayBeforeSigKill>0}}. By default this is set to {{250 milliseconds}} and so irrespective of the container type, it will get always get executed.
For a docker container, {{docker stop}} takes care of sending a {{SIGKILL}} after the grace period, so having {{DelayedProcessKiller}} seems redundant.
> DelayedProcessKiller is executed for Docker containers even though docker stop sends a KILL signal after the specified grace period
> -----------------------------------------------------------------------------------------------------------------------------------
>
> Key: YARN-8706
> URL: https://issues.apache.org/jira/browse/YARN-8706
> Project: Hadoop YARN
> Issue Type: Sub-task
> Reporter: Chandni Singh
> Assignee: Chandni Singh
> Priority: Major
> Labels: docker
>
> {{DockerStopCommand}} adds a grace period of 10 seconds.
> 10 seconds is also the default grace time use by docker stop
> [https://docs.docker.com/engine/reference/commandline/stop/]
> Documentation of the docker stop:
> {quote}the main process inside the container will receive {{SIGTERM}}, and after a grace period, {{SIGKILL}}.
> {quote}
> There is a {{DelayedProcessKiller}} in {{ContainerExcecutor}} which executes for all containers after a delay when {{sleepDelayBeforeSigKill>0}}. By default this is set to {{250 milliseconds}} and so irrespective of the container type, it will always get executed.
>
> For a docker container, {{docker stop}} takes care of sending a {{SIGKILL}} after the grace period
> - when sleepDelayBeforeSigKill > 10 seconds, then there is no point of executing DelayedProcessKiller
> - when sleepDelayBeforeSigKill < 1 second, then the grace period should be least, which is 1 second, because anyways we are forcing kill after 250 ms
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-issues-help@hadoop.apache.org