From 3d5bb772fbf93f70371f4a61c755c01c54246f7a Mon Sep 17 00:00:00 2001 From: Akash Kothawale Date: Mon, 5 Feb 2018 02:18:33 -0500 Subject: [PATCH] Fix: Mutex lock handling issues with task running --- schedulers/base.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/schedulers/base.go b/schedulers/base.go index 10b36bb..9cdf50d 100644 --- a/schedulers/base.go +++ b/schedulers/base.go @@ -76,7 +76,9 @@ func (s *BaseScheduler) init(opts ...schedPolicyOption) { log.Fatal(err) } } + s.TasksRunningMutex.Lock() s.Running = make(map[string]map[string]bool) + s.TasksRunningMutex.Unlock() s.HostNameToSlaveID = make(map[string]string) s.mutex = sync.Mutex{} s.schedWindowResStrategy = schedUtils.SchedWindowResizingCritToStrategy["fillNextOfferCycle"] @@ -101,10 +103,9 @@ func (s *BaseScheduler) newTask(offer *mesos.Offer, task def.Task) *mesos.TaskIn if _, ok := s.Running[offer.GetSlaveId().GoString()]; !ok { s.Running[offer.GetSlaveId().GoString()] = make(map[string]bool) } - s.TasksRunningMutex.Unlock() - // Add task to list of tasks running on node s.Running[offer.GetSlaveId().GoString()][taskName] = true + s.TasksRunningMutex.Unlock() resources := []*mesos.Resource{ mesosutil.NewScalarResource("cpus", task.CPU),