[ https://issues.apache.org/jira/browse/MAPREDUCE-1316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Amar Kamat updated MAPREDUCE-1316: ---------------------------------- Attachment: mapreduce-1316-v1.14-branch20-yahoo.patch Attaching a patch for Yahoo!'s internal 20 branch (no to committed). This patch incorporates review comments from Hemanth and Arun. Changes are as follows : - The junit mock test is changed to test all the task types. - Also added a _getTasks(TaskType)_ api in JobInProgress. Note that the findbugs cribbed on the _getTasks(TaskType)_ change with IS2_INCONSISTENT_SYNC warning. This error occurs because except _getTasks(TaskType)_, all the task arrays (i.e maps, reduces, setup, cleanup) are accessed inside JobInProgress lock. Prior to this patch, they are accessed in an unsynchronized way. Making _getTasks(TaskType)_ synchronized might get rid of the findbugs warnings but will add some more risk to this patch. Maybe we can follow this in another jira, thoughts? - Note that the implementation of _JobInProgrsss.getTasks(TaskType)_ uses string comparison for enums instead of '==' or equals because of the jvm bug raised [here|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6277781]. I think its safer to compare enum names. I ran all the tests that are touched by this patch and they have passed. I am now running the remaining tests. Will upload the test results. > JobTracker holds stale references to retired jobs via unreported tasks > ----------------------------------------------------------------------- > > Key: MAPREDUCE-1316 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-1316 > Project: Hadoop Map/Reduce > Issue Type: Bug > Components: jobtracker > Reporter: Amar Kamat > Assignee: Amar Kamat > Priority: Blocker > Attachments: mapreduce-1316-v1.11.patch, > mapreduce-1316-v1.13-branch20-yahoo.patch, > mapreduce-1316-v1.14-branch20-yahoo.patch, mapreduce-1316-v1.7.patch > > > JobTracker fails to remove _unreported_ tasks' mapping from _taskToTIPMap_ if > the job finishes and retires. _Unreported tasks_ refers to tasks that were > scheduled but the tasktracker did not report back with the task status. In > such cases a stale reference is held to TaskInProgress (and thus > JobInProgress) long after the job is gone leading to memory leak. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.