From 13d1fd0730888d4d1cdc116d402bc5a68bf90207 Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Thu, 11 Feb 2016 09:45:27 -0800 Subject: [PATCH] Only set eligibility if the eval hasn't escaped --- scheduler/generic_sched.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/scheduler/generic_sched.go b/scheduler/generic_sched.go index 257ab5b3f..68f0d3c47 100644 --- a/scheduler/generic_sched.go +++ b/scheduler/generic_sched.go @@ -129,13 +129,16 @@ func (s *GenericScheduler) Process(eval *structs.Evaluation) error { // createBlockedEval creates a blocked eval and stores it. func (s *GenericScheduler) createBlockedEval() error { - if s.eval == nil { - return fmt.Errorf("eval must be set to create blocked eval") + e := s.ctx.Eligibility() + escaped := e.HasEscaped() + + // Only store the eligible classes if the eval hasn't escaped. + var classEligibility map[string]bool + if !escaped { + classEligibility = e.GetClasses() } - e := s.ctx.Eligibility() - classes := e.GetClasses() - s.blocked = s.eval.BlockedEval(classes, e.HasEscaped()) + s.blocked = s.eval.BlockedEval(classEligibility, escaped) return s.planner.CreateEval(s.blocked) }