diff --git a/scheduler/scheduler_system.go b/scheduler/scheduler_system.go index 0a157c93c35..9e40aa72e51 100644 --- a/scheduler/scheduler_system.go +++ b/scheduler/scheduler_system.go @@ -52,7 +52,6 @@ type SystemScheduler struct { deployment *structs.Deployment limitReached bool - nextEval *structs.Evaluation failedTGAllocs map[string]*structs.AllocMetric queuedAllocs map[string]int @@ -100,7 +99,7 @@ func (s *SystemScheduler) Process(eval *structs.Evaluation) (err error) { // Verify the evaluation trigger reason is understood if !s.canHandle(eval.TriggeredBy) { desc := fmt.Sprintf("scheduler cannot handle '%s' evaluation reason", eval.TriggeredBy) - return setStatus(s.logger, s.planner, s.eval, s.nextEval, nil, + return setStatus(s.logger, s.planner, s.eval, nil, nil, s.failedTGAllocs, s.planAnnotations, structs.EvalStatusFailed, desc, s.queuedAllocs, s.deployment.GetID()) } @@ -114,7 +113,7 @@ func (s *SystemScheduler) Process(eval *structs.Evaluation) (err error) { progress := func() bool { return progressMade(s.planResult) } if err := retryMax(limit, s.process, progress); err != nil { if statusErr, ok := err.(*SetStatusError); ok { - return setStatus(s.logger, s.planner, s.eval, s.nextEval, nil, + return setStatus(s.logger, s.planner, s.eval, nil, nil, s.failedTGAllocs, s.planAnnotations, statusErr.EvalStatus, err.Error(), s.queuedAllocs, s.deployment.GetID()) } @@ -122,7 +121,7 @@ func (s *SystemScheduler) Process(eval *structs.Evaluation) (err error) { } // Update the status to complete - return setStatus(s.logger, s.planner, s.eval, s.nextEval, nil, + return setStatus(s.logger, s.planner, s.eval, nil, nil, s.failedTGAllocs, s.planAnnotations, structs.EvalStatusComplete, "", s.queuedAllocs, s.deployment.GetID()) } @@ -190,17 +189,6 @@ func (s *SystemScheduler) process() (bool, error) { return true, nil } - // If the limit of placements was reached we need to create an evaluation - // to pickup from here after the stagger period. - if s.limitReached && s.nextEval == nil { - s.nextEval = s.eval.NextRollingEval(s.job.Update.MinHealthyTime) - if err := s.planner.CreateEval(s.nextEval); err != nil { - s.logger.Error("failed to make next eval for rolling update", "error", err) - return false, err - } - s.logger.Debug("rolling update limit reached, next eval created", "next_eval_id", s.nextEval.ID) - } - // Submit the plan if s.eval.AnnotatePlan { s.plan.Annotations = s.planAnnotations diff --git a/scheduler/scheduler_system_test.go b/scheduler/scheduler_system_test.go index 6497d756d35..eeed3d7827a 100644 --- a/scheduler/scheduler_system_test.go +++ b/scheduler/scheduler_system_test.go @@ -702,28 +702,6 @@ func TestSystemSched_JobModify_Rolling(t *testing.T) { } h.AssertEvalStatus(t, structs.EvalStatusComplete) - - // Ensure a follow up eval was created - eval = h.Evals[0] - if eval.NextEval == "" { - t.Fatalf("missing next eval") - } - - // Check for create - if len(h.CreateEvals) == 0 { - t.Fatalf("missing created eval") - } - create := h.CreateEvals[0] - if eval.NextEval != create.ID { - t.Fatalf("ID mismatch") - } - if create.PreviousEval != eval.ID { - t.Fatalf("missing previous eval") - } - - if create.TriggeredBy != structs.EvalTriggerRollingUpdate { - t.Fatalf("bad: %#v", create) - } } func TestSystemSched_JobModify_InPlace(t *testing.T) {