You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by "Brian Foster (JIRA)" <ji...@apache.org> on 2010/12/10 23:35:01 UTC

[jira] Created: (OODT-79) LRUScheduler removes a job from the JobQueue, but adds it back if can't schedule it, which (in the JobStack impl) causes JobRepo to create duplicate copies of the same JobSpec with different JobIds

LRUScheduler removes a job from the JobQueue, but adds it back if can't schedule it, which (in the JobStack impl) causes JobRepo to create duplicate copies of the same JobSpec with different JobIds
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: OODT-79
                 URL: https://issues.apache.org/jira/browse/OODT-79
             Project: OODT
          Issue Type: Bug
          Components: resource manager
    Affects Versions: 0.1-incubating
         Environment: none
            Reporter: Brian Foster
            Assignee: Brian Foster
            Priority: Minor
             Fix For: 0.2



In LRUScheduler:

public void run() { .... exec = myJobQueue.getNextJob(); .... (on failure) myJobQueue.addJob(spec); }

In myJobQueue.getNextJob() (where myJobQueue is instanceof JobStack) the JobSpec is deleted and in myJobQueue.addJob(spec) repo.addJob(JobSpec) is called as shown:

public String addJob(JobSpec spec) throws JobQueueException { String jobId = safeAddJob(spec); .... }
private String safeAddJob(JobSpec spec) { .... return this.repo.addJob(spec); .... }

- Point being: JobStack's addJob(JobSpec) should not be called by LRUScheduler when adding a job back to the JobStack because the jobspec is already stored in JobRepository and everytime addJob(JobSpec) is called the JobSpec is given a new JobId

- Patch will introduce a new method to JobQueue called: requeueJob(JobSpec) which will add the JobSpec to the back of the JobQueue and update the JobRepo.


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


[jira] Updated: (OODT-79) LRUScheduler removes a job from the JobQueue, but adds it back if can't schedule it, which (in the JobStack impl) causes JobRepo to create duplicate copies of the same JobSpec with different JobIds

Posted by "Brian Foster (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OODT-79?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Foster updated OODT-79:
-----------------------------

    Attachment: OODT-79.2010-12-13.patch.txt


- attached patch

> LRUScheduler removes a job from the JobQueue, but adds it back if can't schedule it, which (in the JobStack impl) causes JobRepo to create duplicate copies of the same JobSpec with different JobIds
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OODT-79
>                 URL: https://issues.apache.org/jira/browse/OODT-79
>             Project: OODT
>          Issue Type: Bug
>          Components: resource manager
>    Affects Versions: 0.1-incubating
>         Environment: none
>            Reporter: Brian Foster
>            Assignee: Brian Foster
>            Priority: Minor
>             Fix For: 0.2
>
>         Attachments: OODT-79.2010-12-13.patch.txt
>
>
> In LRUScheduler:
> public void run() { .... exec = myJobQueue.getNextJob(); .... (on failure) myJobQueue.addJob(spec); }
> In myJobQueue.getNextJob() (where myJobQueue is instanceof JobStack) the JobSpec is deleted and in myJobQueue.addJob(spec) repo.addJob(JobSpec) is called as shown:
> public String addJob(JobSpec spec) throws JobQueueException { String jobId = safeAddJob(spec); .... }
> private String safeAddJob(JobSpec spec) { .... return this.repo.addJob(spec); .... }
> - Point being: JobStack's addJob(JobSpec) should not be called by LRUScheduler when adding a job back to the JobStack because the jobspec is already stored in JobRepository and everytime addJob(JobSpec) is called the JobSpec is given a new JobId
> - Patch will introduce a new method to JobQueue called: requeueJob(JobSpec) which will add the JobSpec to the back of the JobQueue and update the JobRepo.

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


[jira] Resolved: (OODT-79) LRUScheduler removes a job from the JobQueue, but adds it back if can't schedule it, which (in the JobStack impl) causes JobRepo to create duplicate copies of the same JobSpec with different JobIds

Posted by "Brian Foster (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OODT-79?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Foster resolved OODT-79.
------------------------------

    Resolution: Fixed


- fixed in r1049294

> LRUScheduler removes a job from the JobQueue, but adds it back if can't schedule it, which (in the JobStack impl) causes JobRepo to create duplicate copies of the same JobSpec with different JobIds
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OODT-79
>                 URL: https://issues.apache.org/jira/browse/OODT-79
>             Project: OODT
>          Issue Type: Bug
>          Components: resource manager
>    Affects Versions: 0.1-incubating
>         Environment: none
>            Reporter: Brian Foster
>            Assignee: Brian Foster
>            Priority: Minor
>             Fix For: 0.2
>
>         Attachments: OODT-79.2010-12-13.patch.txt
>
>
> In LRUScheduler:
> public void run() { .... exec = myJobQueue.getNextJob(); .... (on failure) myJobQueue.addJob(spec); }
> In myJobQueue.getNextJob() (where myJobQueue is instanceof JobStack) the JobSpec is deleted and in myJobQueue.addJob(spec) repo.addJob(JobSpec) is called as shown:
> public String addJob(JobSpec spec) throws JobQueueException { String jobId = safeAddJob(spec); .... }
> private String safeAddJob(JobSpec spec) { .... return this.repo.addJob(spec); .... }
> - Point being: JobStack's addJob(JobSpec) should not be called by LRUScheduler when adding a job back to the JobStack because the jobspec is already stored in JobRepository and everytime addJob(JobSpec) is called the JobSpec is given a new JobId
> - Patch will introduce a new method to JobQueue called: requeueJob(JobSpec) which will add the JobSpec to the back of the JobQueue and update the JobRepo.

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