You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Arun C Murthy (JIRA)" <ji...@apache.org> on 2007/04/23 19:50:15 UTC

[jira] Created: (HADOOP-1289) Just launched tasks aren't getting cleaned up on job completion (success/killed)

Just launched tasks aren't getting cleaned up on job completion (success/killed)
--------------------------------------------------------------------------------

                 Key: HADOOP-1289
                 URL: https://issues.apache.org/jira/browse/HADOOP-1289
             Project: Hadoop
          Issue Type: Bug
          Components: mapred
            Reporter: Arun C Murthy


When a job is killed, if there are tasks which haven't been launched yet (just scheduled on a tasktracker) it leads to a situation where the non-launched task hangs around for a long time on the tasktrackers taking up valuable 'slots' preventing the scheduling of _legitimate_ tasks on them.

This is due to a race-condition:
a) Job is killed:
    JobInProgress.kill
    -> JobInProgress.garbageCollect
    -> JobInProgress.finalizeJob
    -> JobTracker.removeJobTasks
    -> JobTracker.removeTaskEntry - this removes the taskid -> TIP entry in JobTracker.taskIdToTIPMap
b) ExpireLaunchingTasks thread detects the task has timedout, however since the taskid -> TIP map is missing it cannot 'fail' the task - thus leaving it orphaned on the tasktracker.

One possible solution is to broadcast a KillJobAction to all trackers in the cluster (or only those trackers which ever ran a task of this Job) ensuring the right cleanup... clearly this is a hairy situation.

Thoughts?


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


[jira] Updated: (HADOOP-1289) Just launched tasks aren't getting cleaned up on job completion (success/killed)

Posted by "Arun C Murthy (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HADOOP-1289?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Arun C Murthy updated HADOOP-1289:
----------------------------------

        Fix Version/s: 0.13.0
             Assignee: Arun C Murthy
    Affects Version/s: 0.12.3

> Just launched tasks aren't getting cleaned up on job completion (success/killed)
> --------------------------------------------------------------------------------
>
>                 Key: HADOOP-1289
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1289
>             Project: Hadoop
>          Issue Type: Bug
>          Components: mapred
>    Affects Versions: 0.12.3
>            Reporter: Arun C Murthy
>         Assigned To: Arun C Murthy
>             Fix For: 0.13.0
>
>
> When a job is killed, if there are tasks which haven't been launched yet (just scheduled on a tasktracker) it leads to a situation where the non-launched task hangs around for a long time on the tasktrackers taking up valuable 'slots' preventing the scheduling of _legitimate_ tasks on them.
> This is due to a race-condition:
> a) Job is killed:
>     JobInProgress.kill
>     -> JobInProgress.garbageCollect
>     -> JobInProgress.finalizeJob
>     -> JobTracker.removeJobTasks
>     -> JobTracker.removeTaskEntry - this removes the taskid -> TIP entry in JobTracker.taskIdToTIPMap
> b) ExpireLaunchingTasks thread detects the task has timedout, however since the taskid -> TIP map is missing it cannot 'fail' the task - thus leaving it orphaned on the tasktracker.
> One possible solution is to broadcast a KillJobAction to all trackers in the cluster (or only those trackers which ever ran a task of this Job) ensuring the right cleanup... clearly this is a hairy situation.
> Thoughts?

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