[ 
https://issues.apache.org/jira/browse/HADOOP-2721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12656993#action_12656993
 ] 

Vinod K V commented on HADOOP-2721:
-----------------------------------

Had a look at the code. The basic functionality seems fine. Didn't run and 
check it manually myself, will do so ASAP.

Comments:
  - We are now generating pidfiles for every tasks, irrespective of whether 
memory mangement functionality is enabled or not. This results in an additional 
trip to disk for every task startup. We should bench-mark so that this doesn't 
greatly affect the task-startup.
  - As we are moving pidfiles beyond the scope of memory management, we should 
move the pidfile related api(getPidFilePath, removePidFile) out of 
TaskMemoryManager.
  - destroySubprocessTree() should also ensure that the process-tree is indeed 
terminated/killed by sending SIGKILL if needed. We should do something in the 
line of  ProcfsBasedProcessTree.SigKillThread.
  - I think the check to ensure that the process is the process group leader 
should be made always. This adds one more level of confidence that we are 
indeed killing the right process. But this should be done in 
destroySubprocessTree() and only when used by TT. In other cases, this may not 
be the case. So we need to separate this may be by having separate api for 
destroySession and destroySubprocessTree. TT would use destroySession.

TestCases:
  - We should split the current TestProcfsBasedProcessTree to test basic 
process-tree killing functionality and memory calculation separately. Also, we 
somehow need to verify that all the sub-processes are indeed wiped off.
  - We also need a MiniMRCluster based test with streaming job to test the 
process cleanup, simulating a real run.
  - Minor priority: Have a test to ensure that the setsid on the PATH that we 
are using indeed creates the processes with the same pgpid.

That is all I have for now :)

> Use job control for tasks (and therefore for pipes and streaming)
> -----------------------------------------------------------------
>
>                 Key: HADOOP-2721
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2721
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: contrib/streaming, mapred, pipes
>            Reporter: Owen O'Malley
>            Assignee: Ravi Gummadi
>         Attachments: HADOOP-2721.patch, HADOOP-2721.patch, HADOOP-2721.patch
>
>
> We should use the setsid command when the task is launched to create a new 
> session. We should be able to use the setsid program when we launch the bash 
> process to create a new session. That will allow us to kill the entire 
> session with a single signal and remove the need for the ping methods in both 
> TaskTracker.Child and pipes.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to