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

Benjamin Mahler resolved MESOS-387.
-----------------------------------

    Resolution: Fixed
    
> 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

Reply via email to