From 8ef7863bed8271769d11c09fefb01f6b4d48cb95 Mon Sep 17 00:00:00 2001 From: Michael Schurter Date: Mon, 19 Mar 2018 10:18:20 -0700 Subject: [PATCH] Deregister garbage collected jobs --- nomad/drainer/watch_jobs.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/nomad/drainer/watch_jobs.go b/nomad/drainer/watch_jobs.go index 181871b20..388bf9a7f 100644 --- a/nomad/drainer/watch_jobs.go +++ b/nomad/drainer/watch_jobs.go @@ -189,12 +189,19 @@ func (w *drainingJobWatcher) watch() { w.logger.Printf("[TRACE] nomad.drain.job_watcher: handling job %v", jns) // Lookup the job - job, err := w.state.JobByID(nil, jns.Namespace, jns.ID) - if err != nil || job == nil { + job, err := snap.JobByID(nil, jns.Namespace, jns.ID) + if err != nil { w.logger.Printf("[WARN] nomad.drain.job_watcher: failed to lookup job %v: %v", jns, err) continue } + // Ignore purged jobs + if job == nil { + w.logger.Printf("[TRACE] nomad.drain.job_watcher: ignoring garbage collected job %q", jns) + w.deregisterJob(jns.ID, jns.Namespace) + continue + } + // Ignore all non-service jobs if job.Type != structs.JobTypeService { w.deregisterJob(job.ID, job.Namespace)