Commit 7ba9b8f5 authored by Alex Dadgar's avatar Alex Dadgar
Browse files

Always remove periodic jobs in fsm

parent 9e6457eb
No related merge requests found
Showing with 15 additions and 20 deletions
+15 -20
......@@ -262,28 +262,20 @@ func (n *nomadFSM) applyDeregisterJob(buf []byte, index uint64) interface{} {
panic(fmt.Errorf("failed to decode request: %v", err))
}
job, err := n.state.JobByID(req.JobID)
if err != nil {
if err := n.state.DeleteJob(index, req.JobID); err != nil {
n.logger.Printf("[ERR] nomad.fsm: DeleteJob failed: %v", err)
return err
}
if err := n.state.DeleteJob(index, req.JobID); err != nil {
n.logger.Printf("[ERR] nomad.fsm: DeleteJob failed: %v", err)
if err := n.periodicDispatcher.Remove(req.JobID); err != nil {
n.logger.Printf("[ERR] nomad.fsm: periodicDispatcher.Remove failed: %v", err)
return err
}
if job.IsPeriodic() {
if err := n.periodicDispatcher.Remove(req.JobID); err != nil {
n.logger.Printf("[ERR] nomad.fsm: periodicDispatcher.Remove failed: %v", err)
return err
}
if err := n.state.DeletePeriodicLaunch(index, req.JobID); err != nil {
n.logger.Printf("[ERR] nomad.fsm: DeletePeriodicLaunch failed: %v", err)
return err
}
}
// We always delete from the periodic launch table because it is possible that
// the job was updated to be non-perioidic, thus checking if it is periodic
// doesn't ensure we clean it up properly.
n.state.DeletePeriodicLaunch(index, req.JobID)
return nil
}
......
......@@ -197,11 +197,14 @@ func (p *PeriodicDispatch) removeLocked(jobID string) error {
return nil
}
if job, tracked := p.tracked[jobID]; tracked {
delete(p.tracked, jobID)
if err := p.heap.Remove(job); err != nil {
return fmt.Errorf("failed to remove tracked job %v: %v", jobID, err)
}
job, tracked := p.tracked[jobID]
if !tracked {
return nil
}
delete(p.tracked, jobID)
if err := p.heap.Remove(job); err != nil {
return fmt.Errorf("failed to remove tracked job %v: %v", jobID, err)
}
// Signal an update.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment