From ddf10e106a39e85b7f5bbe85fa87906c8f2d8626 Mon Sep 17 00:00:00 2001 From: Diptanu Choudhury Date: Fri, 22 Jul 2016 16:48:42 -0700 Subject: [PATCH] Initializing the queued allocations late --- scheduler/generic_sched.go | 19 +++++++++---------- scheduler/system_sched.go | 8 ++++---- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/scheduler/generic_sched.go b/scheduler/generic_sched.go index 8f863b5dc..ceed9e88e 100644 --- a/scheduler/generic_sched.go +++ b/scheduler/generic_sched.go @@ -78,11 +78,10 @@ type GenericScheduler struct { // NewServiceScheduler is a factory function to instantiate a new service scheduler func NewServiceScheduler(logger *log.Logger, state State, planner Planner) Scheduler { s := &GenericScheduler{ - logger: logger, - state: state, - planner: planner, - batch: false, - queuedAllocs: make(map[string]int), + logger: logger, + state: state, + planner: planner, + batch: false, } return s } @@ -90,11 +89,10 @@ func NewServiceScheduler(logger *log.Logger, state State, planner Planner) Sched // NewBatchScheduler is a factory function to instantiate a new batch scheduler func NewBatchScheduler(logger *log.Logger, state State, planner Planner) Scheduler { s := &GenericScheduler{ - logger: logger, - state: state, - planner: planner, - batch: true, - queuedAllocs: make(map[string]int), + logger: logger, + state: state, + planner: planner, + batch: true, } return s } @@ -181,6 +179,7 @@ func (s *GenericScheduler) createBlockedEval(planFailure bool) error { // process is wrapped in retryMax to iteratively run the handler until we have no // further work or we've made the maximum number of attempts. func (s *GenericScheduler) process() (bool, error) { + s.queuedAllocs = make(map[string]int) // Lookup the Job by ID var err error s.job, err = s.state.JobByID(s.eval.JobID) diff --git a/scheduler/system_sched.go b/scheduler/system_sched.go index 76979af38..c705928da 100644 --- a/scheduler/system_sched.go +++ b/scheduler/system_sched.go @@ -45,10 +45,9 @@ type SystemScheduler struct { // scheduler. func NewSystemScheduler(logger *log.Logger, state State, planner Planner) Scheduler { return &SystemScheduler{ - logger: logger, - state: state, - planner: planner, - queuedAllocs: make(map[string]int), + logger: logger, + state: state, + planner: planner, } } @@ -86,6 +85,7 @@ func (s *SystemScheduler) Process(eval *structs.Evaluation) error { // process is wrapped in retryMax to iteratively run the handler until we have no // further work or we've made the maximum number of attempts. func (s *SystemScheduler) process() (bool, error) { + s.queuedAllocs = make(map[string]int) // Lookup the Job by ID var err error s.job, err = s.state.JobByID(s.eval.JobID)