[
https://issues.apache.org/jira/browse/HADOOP-4236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Arun C Murthy updated HADOOP-4236:
----------------------------------
Status: Open (was: Patch Available)
Ok, I had a long discussion with Sameer and Owen about this and here is a
slightly modfied approach we feel is slightly more maintainable:
1. Introduce a new job-status class with 2 booleans: killJob and initTasks.
2. JobInProgress.kill should synchronize on the new status object, set the
'killJob' boolean to true (via a setter) and then check the 'initTasks' and
call terminate if necessary while holding the lock on the status object.
3. Similarly JobInProgress.initTasks should synchronize on the status object at
the _end_ (not at the beginning, there-by eliminating the need for the
'initStarted' flag) and call terminate if necessary while holding the lock on
the status object.
Basically, the proposal is to keep a single object which tracks killJob and
initTasks simultaneously rather than relying on too many pieces.
Thoughts?
> JobTracker.killJob() fails to kill a job if the job is not yet initialized
> --------------------------------------------------------------------------
>
> Key: HADOOP-4236
> URL: https://issues.apache.org/jira/browse/HADOOP-4236
> Project: Hadoop Core
> Issue Type: Bug
> Components: mapred
> Affects Versions: 0.19.0
> Reporter: Amar Kamat
> Assignee: Sharad Agarwal
> Priority: Blocker
> Fix For: 0.19.0
>
> Attachments: 4236_v1.patch, 4236_v2.patch, 4236_v3.patch
>
>
> HADOOP-3864 made the following changes to {{JobTracker.killJob()}}
> {code}
> public synchronized void killJob(JobID jobid) {
> JobInProgress job = jobs.get(jobid);
> - job.kill();
> + if (job.inited()) {
> + job.kill();
> + }
> }
> {code}
> This is a bug as a job will not get killed if its not yet initialized.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.