[ 
https://issues.apache.org/jira/browse/YARN-4377?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jaromir Vanek updated YARN-4377:
--------------------------------
    Environment: Debian 7  (was: Debian linux)
       Priority: Minor  (was: Critical)
    Description: 
Debug logs seem to be confusing when stating {{Sending signal to pid 20748 as 
user _submitter_}}.

Nodemanager actually sends signals as a user {{yarn}} when using 
{{DefaultContainerExecutor}}.

Complete 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 seem to be sent with the 
*submitter* user permissions, but this is not true when container process is 
running under *yarn* user by default.

What is the purpose of having submitter user in logs?

  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?

        Summary: Confusing logs when killing container process  (was: Container 
process not killed)

> Confusing logs when killing container process
> ---------------------------------------------
>
>                 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 7
>            Reporter: Jaromir Vanek
>            Priority: Minor
>
> Debug logs seem to be confusing when stating {{Sending signal to pid 20748 as 
> user _submitter_}}.
> Nodemanager actually sends signals as a user {{yarn}} when using 
> {{DefaultContainerExecutor}}.
> Complete 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 seem to be sent with the 
> *submitter* user permissions, but this is not true when container process is 
> running under *yarn* user by default.
> What is the purpose of having submitter user in logs?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to