[
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.