diff --git a/nomad/worker.go b/nomad/worker.go index 911f4ee3a40..75b20c1c774 100644 --- a/nomad/worker.go +++ b/nomad/worker.go @@ -114,18 +114,21 @@ func (w *Worker) run() { // Check for a shutdown if w.srv.IsShutdown() { + w.logger.Error("nacking eval because the server is shutting down", "eval", log.Fmt("%#v", eval)) w.sendAck(eval.ID, token, false) return } // Wait for the raft log to catchup to the evaluation if err := w.waitForIndex(waitIndex, raftSyncLimit); err != nil { + w.logger.Error("error waiting for Raft index", "error", err, "index", waitIndex) w.sendAck(eval.ID, token, false) continue } // Invoke the scheduler to determine placements if err := w.invokeScheduler(eval, token); err != nil { + w.logger.Error("error invoking scheduler", "error", err) w.sendAck(eval.ID, token, false) continue } diff --git a/scheduler/generic_sched.go b/scheduler/generic_sched.go index ec9a31533a1..1094bc6a717 100644 --- a/scheduler/generic_sched.go +++ b/scheduler/generic_sched.go @@ -130,7 +130,8 @@ func (s *GenericScheduler) Process(eval *structs.Evaluation) error { structs.EvalTriggerNodeDrain, structs.EvalTriggerNodeUpdate, structs.EvalTriggerRollingUpdate, structs.EvalTriggerQueuedAllocs, structs.EvalTriggerPeriodicJob, structs.EvalTriggerMaxPlans, - structs.EvalTriggerDeploymentWatcher, structs.EvalTriggerRetryFailedAlloc: + structs.EvalTriggerDeploymentWatcher, structs.EvalTriggerRetryFailedAlloc, + structs.EvalTriggerFailedFollowUp: default: desc := fmt.Sprintf("scheduler cannot handle '%s' evaluation reason", eval.TriggeredBy) diff --git a/scheduler/system_sched.go b/scheduler/system_sched.go index 53131e3b425..b1a243a997f 100644 --- a/scheduler/system_sched.go +++ b/scheduler/system_sched.go @@ -60,7 +60,7 @@ func (s *SystemScheduler) Process(eval *structs.Evaluation) error { // Verify the evaluation trigger reason is understood switch eval.TriggeredBy { - case structs.EvalTriggerJobRegister, structs.EvalTriggerNodeUpdate, + case structs.EvalTriggerJobRegister, structs.EvalTriggerNodeUpdate, structs.EvalTriggerFailedFollowUp, structs.EvalTriggerJobDeregister, structs.EvalTriggerRollingUpdate, structs.EvalTriggerDeploymentWatcher, structs.EvalTriggerNodeDrain: default: