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