[
https://issues.apache.org/jira/browse/YARN-4377?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jaromir Vanek updated YARN-4377:
--------------------------------
Description:
It seems my processes in containers are not killed when the whole job is
killed. Containers will hang in {{KILLING}} state until forever.
The root of this problem is that signals sent to the container process are sent
with wrong user permissions.
>From the nodemanager log:
{quote}
2015-11-20 15:38:22,063 DEBUG
org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch:
Got pid 20748 for container container_1443786884805_2298_01_000003
2015-11-20 15:38:22,063 DEBUG
org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch:
Sending signal to pid 20748 as user _submitter_ for container
container_1443786884805_2298_01_000003
2015-11-20 15:38:22,063 DEBUG
org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Sending
signal 15 to pid 20748 as user _submitter_
2015-11-20 15:38:22,069 DEBUG
org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch:
Sent signal SIGTERM to pid 20748 as user _submitter_ for container
container_1443786884805_2298_01_000003, result=failed
2015-11-20 15:38:22,319 DEBUG
org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Sending
signal 9 to pid 20748 as user _submitter_
{quote}
{{SIGTERM}} and following {{SIGKILL}} signals are sent with the *submitter*
user permissions, but the container process is running under *yarn* user by
default (when using {{DefaultContainerExecutor}} which is true in my case). The
result is that signals are ignored and container will run forever.
Am I doing something wrong or is it a bug?
was:
It seems my processes in containers are not killed when the whole job is
killed. Containers will hang in {{KILLING}} state until forever.
The root of this problem is that signals sent to the container process are sent
with wrong user permissions.
>From the nodemanager log:
{quote}
2015-11-20 15:38:22,063 DEBUG
org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch:
Got pid 20748 for container container_1443786884805_2298_01_000003
2015-11-20 15:38:22,063 DEBUG
org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch:
Sending signal to pid 20748 as user _submitter_ for container
container_1443786884805_2298_01_000003
2015-11-20 15:38:22,063 DEBUG
org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Sending
signal 15 to pid 20748 as user _submitter_
2015-11-20 15:38:22,069 DEBUG
org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch:
Sent signal SIGTERM to pid 20748 as user _submitter_ for container
container_1443786884805_2298_01_000003, result=failed
2015-11-20 15:38:22,319 DEBUG
org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Sending
signal 9 to pid 20748 as user _submitter_
{quote}
{{SIGTERM}} and following {{SIGKILL}} signals are sent with the *submitter*
user permissions, but the container process is running under *yarn* user by
default (when using {{DefaultContainerExecutor}} which is true in my case}}.
The result is that signals are ignored and container will run forever.
Am I doing something wrong or is it a bug?
> Container process not killed
> ----------------------------
>
> Key: YARN-4377
> URL: https://issues.apache.org/jira/browse/YARN-4377
> Project: Hadoop YARN
> Issue Type: Bug
> Components: nodemanager
> Affects Versions: 2.6.0
> Environment: Debian linux
> Reporter: Jaromir Vanek
> Priority: Critical
>
> It seems my processes in containers are not killed when the whole job is
> killed. Containers will hang in {{KILLING}} state until forever.
> The root of this problem is that signals sent to the container process are
> sent with wrong user permissions.
> From the nodemanager log:
> {quote}
> 2015-11-20 15:38:22,063 DEBUG
> org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch:
> Got pid 20748 for container container_1443786884805_2298_01_000003
> 2015-11-20 15:38:22,063 DEBUG
> org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch:
> Sending signal to pid 20748 as user _submitter_ for container
> container_1443786884805_2298_01_000003
> 2015-11-20 15:38:22,063 DEBUG
> org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Sending
> signal 15 to pid 20748 as user _submitter_
> 2015-11-20 15:38:22,069 DEBUG
> org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch:
> Sent signal SIGTERM to pid 20748 as user _submitter_ for container
> container_1443786884805_2298_01_000003, result=failed
> 2015-11-20 15:38:22,319 DEBUG
> org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Sending
> signal 9 to pid 20748 as user _submitter_
> {quote}
> {{SIGTERM}} and following {{SIGKILL}} signals are sent with the *submitter*
> user permissions, but the container process is running under *yarn* user by
> default (when using {{DefaultContainerExecutor}} which is true in my case).
> The result is that signals are ignored and container will run forever.
> Am I doing something wrong or is it a bug?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)