[
https://issues.apache.org/jira/browse/HADOOP-5420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708839#action_12708839
]
Vinod K V commented on HADOOP-5420:
-----------------------------------
Patch is coming out good. Some more comments, mostly minor:
main.c
- We should have a separate exit-code for the case when pid!=ppid in
verify_parent() function.
- I don't see the per-command checks for the number of arguments.
atoi(argv[optind++]) will segfault if we go beyond arg-length. Correspondingly,
the null checks and pid<=0 can be done away with in task-controller.c once we
have per-command check for the number of arguments.
- The following code-comment has to be removed. And the check should be only
for 2 args : user and ttroot
{code}
// when we support additional commands without ttroot, this check
// may become command specific.
if (argc < 4) {
display_usage(stderr);
return INVALID_ARGUMENT_NUMBER;
}
{code}
taskcontroller.c
- javadoc for kill_user_task should be "Function used to terminate/kill a task
launched by the user."
taskcontroller.h
- Consistent with the terminology elsewhere, KILL_TASK and DESTROY_TASK_JVM
should instead be TERMINATE_TASK and KILL_TASK
ProcessTree.java
- killProcessGroup(String pid, boolean isProcessGroup) isn't used anywhere,
can be removed.
- Can the the terminate* methods, kill*, destroy*, sigKill* and is*Alive
methods grouped together?
- Need to fix the javadoc of terminateProcess, killProcess,
terminateProcessGroup, killProcessGroup, isAlive() and isProcessGroupAlive()
- sigKillInCurrentThread: The following code is misplaced, it should be inside
the "if (isProcessGroup || ProcessTree.isAlive(pid))" check (+68).
{code}
if(isProcessGroup) {
killProcessGroup(pid);
} else {
killProcess(pid);
}
{code}
TaskController.java
- Rename killTaskJvm to cleanupTaskJvm ??
- Javadoc of this method should instead read "Sends a kill signal to
forcefully kill the task JVM and all its sub-processes"
DefaultTaskController.java
- killTask(): put a comment for the WINDOWS case
- killTask(): "else" not needed
LinuxTaskController.java
- Consistent with the terminology elsewhere, KILL_TASK_JVM and
DESTROY_TASK_JVM should be TERMINATE_TASK_JVM and KILL_TASK_JVM
- TT is not brought down when it fails to write pid on all the configured
local directories.
- Log statement should be added so that we know on which directories TT could
write the pid file.
- When on some directory, pid files are not created because of a transient
errors, tasks launched on that directory will not run. Should we read pid from
other disks?
TestKillSubProcessesWithLinuxTaskController
- Remove blank lines
TestKillSubProcesses:
- In runJob, why is the check needed for the inDir and outDir?
- In isAlive(), if we get an IOException while running the ps command, we need
to re-throw this exception instead of just logging it.
> Support killing of process groups in LinuxTaskController binary
> ---------------------------------------------------------------
>
> Key: HADOOP-5420
> URL: https://issues.apache.org/jira/browse/HADOOP-5420
> Project: Hadoop Core
> Issue Type: Bug
> Reporter: Sreekanth Ramakrishnan
> Assignee: Sreekanth Ramakrishnan
> Attachments: hadoop-5420-1.patch, hadoop-5420-2.patch,
> hadoop-5420-3.patch, hadoop-5420-4.patch, hadoop-5420.patch
>
>
> Support setsid based kill in LinuxTaskController.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.