hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sreekanth Ramakrishnan (JIRA)" <j...@apache.org>
Subject [jira] Commented: (MAPREDUCE-1640) Node health feature fails to blacklist a node if the health check script times out in some cases
Date Mon, 05 Apr 2010 09:31:27 GMT

    [ https://issues.apache.org/jira/browse/MAPREDUCE-1640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12853346#action_12853346

Sreekanth Ramakrishnan commented on MAPREDUCE-1640:

The problem in gist: 

* In bash scripts all the commands are spawned using fork + exec. Similar to system() syscall.
The process hierarchy is as follows:
15772 pts/0    S      0:00  \_ /bin/bash ./myscript.sh
15773 pts/0    S      0:00  |   \_ sleep 100000
* So when kill 15772 is sent, the signal is not delivered to child.
* So parent exits and sleep does not check if the parent is alive or not continues doing its
work as it is a long running process.

The problem is similar to what is mentioned and addressed in HADOOP-2721

For this problem all the node health script which is spawned should do: {{setsid; exec(node_health_path)}}
and then instead of Process.destory() we do {{kill -pid}}, now the problem is that pid of
the process is now passed on to java, so it will change to {{setsid; echo $$ ;exec(node_health_path)}}
and we should read the input stream to get process id.

Or alternate solution to the problem is the node health script configured manages its children

> Node health feature fails to blacklist a node if the health check script times out in
some cases
> ------------------------------------------------------------------------------------------------
>                 Key: MAPREDUCE-1640
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-1640
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: tasktracker
>            Reporter: Vinod K V
>             Fix For: 0.22.0
> Node health check feature fails to blacklist a TT if health check script times out. Below
are the values that were set:
>  - mapred.healthChecker.interval=60000
>  - mapred.healthChecker.script.timeout=6000
> And the script was:
> {code}
> #!/bin/bash
> echo "start"
> sleep 100000
> echo "end"
> {code}

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

View raw message