[ 
https://issues.apache.org/jira/browse/HADOOP-4053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12634434#action_12634434
 ] 

Hemanth Yamijala commented on HADOOP-4053:
------------------------------------------

The default implementation for {{jobCompleted}} is calling {{jobRemoved}}. This 
would result in {{jobRemoved}} being called twice - once when the job 
completes, and once when it retires. Hence all implementations of 
{{jobRemoved}} need to work correctly even if called twice. For e.g. in the 
{{CapacityTaskScheduler}} we clear some data structures. I see that if called 
twice, this may result in problems. For e.g. 
{{qsi.numJobsByUser.get(job.getProfile().getUser());}} may return null when 
called a second time, which is not being checked. I think it is safer to have 
{{jobCompleted}} similar to other APIs - that is, as an abstract method and 
implement it in schedulers. This way, we will be forced to check the 
implementation is correct.

> Schedulers need to know when a job has completed
> ------------------------------------------------
>
>                 Key: HADOOP-4053
>                 URL: https://issues.apache.org/jira/browse/HADOOP-4053
>             Project: Hadoop Core
>          Issue Type: Improvement
>    Affects Versions: 0.19.0
>            Reporter: Vivek Ratan
>            Assignee: Amar Kamat
>             Fix For: 0.19.0
>
>         Attachments: HADOOP-4053-v1.patch
>
>
> The JobInProgressListener interface is used by the framework to notify 
> Schedulers of when jobs are added, removed, or updated. Right now, there is 
> no way for the Scheduler to know that a job has completed. jobRemoved() is 
> called when a job is retired, which can happen many hours after a job is 
> actually completed. jobUpdated() is called when a job's priority is changed. 
> We need to notify a listener when a job has completed (either successfully, 
> or has failed or been killed). 

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

Reply via email to