[
https://issues.apache.org/jira/browse/HADOOP-5488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12695999#action_12695999
]
Ravi Gummadi commented on HADOOP-5488:
--------------------------------------
For successful tasks and failed tasks, as JvmRunner.kill() is not getting
called, their subprocesses are not killed. Even if we call kill for these
tasks, the cleanup of pidFile might be done already and we can't get pid of
taskJvm.
So I am planning to export pid of task in some env variable and then sending
pid of taskJvm from Child(task) to parent(TT) using umbilical protocol ----
changing the methodCall umbilical.getTask(JVMId) to umbilical.getTask(JVMId,
pid) in Child.java and getTask() in TT would set pid in jvmIdToPidMap, which
will be used by JvmRunner.kill(). And JvmRunner.runChild() will call kill() in
the finally block, if it was not called earlier for this jvm.
This approach would avoid the pidFiles altogether.
Thoughts ?
> HADOOP-2721 doesn't clean up descendant processes of a jvm that exits cleanly
> after running a task successfully
> ---------------------------------------------------------------------------------------------------------------
>
> Key: HADOOP-5488
> URL: https://issues.apache.org/jira/browse/HADOOP-5488
> Project: Hadoop Core
> Issue Type: Bug
> Components: mapred
> Reporter: Vinod K V
> Assignee: Ravi Gummadi
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.