You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by "Benjamin Mahler (JIRA)" <ji...@apache.org> on 2013/04/13 00:44:15 UTC

[jira] [Commented] (MESOS-387) Command executor does not issue a killtree / killpg on the shell command.

    [ https://issues.apache.org/jira/browse/MESOS-387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13630709#comment-13630709 ] 

Benjamin Mahler commented on MESOS-387:
---------------------------------------

https://reviews.apache.org/r/10440/
                
> Command executor does not issue a killtree / killpg on the shell command.
> -------------------------------------------------------------------------
>
>                 Key: MESOS-387
>                 URL: https://issues.apache.org/jira/browse/MESOS-387
>             Project: Mesos
>          Issue Type: Bug
>            Reporter: Benjamin Mahler
>            Assignee: Benjamin Mahler
>
> This manifested from my new Isolator tests that are now testing the Isolators. Using the command executor to kill the task left an orphaned child process, since it only issues a kill to the parent pid.
> Relevant code in executor.cpp:
>   virtual void killTask(ExecutorDriver* driver, const TaskID& taskId)
>   {
>     // TODO(benh): Do kill escalation (i.e., after n seconds, kill -9).
>     if (pid > 0) {
>       kill(pid, SIGTERM);
>     }
>   }
>   virtual void shutdown(ExecutorDriver* driver)
>   {
>     // TODO(benh): Do kill escalation (i.e., after n seconds, kill -9).
>     if (pid > 0) {
>       kill(pid, SIGTERM);
>     }
>   }
> This is non-trivial to fix, since it's unclear with who the responsibility lies for kill escalation. With a shell invocation of:
> "top -b -d 0 -n 30000 2>&1 > /dev/null & sleep 60"
> The sleep command will be killed immediately and the executor appears to exit, so kill escalation in the slave will not occur AFAICT. Thus, the command executor needs to:
>   1. Issue killtree() and killpg() calls instead of direct kill() calls.
>   2. Perform kill escalation (as indicated in the benh TODO above).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira