From 2714203796de28bf2c497a020ec553e1c922cb1c Mon Sep 17 00:00:00 2001 From: nolouch Date: Thu, 3 May 2018 11:20:53 +0800 Subject: [PATCH 1/2] server: fix the valid scheduler was deleted when start coordinator --- server/coordinator.go | 3 +++ server/coordinator_test.go | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/server/coordinator.go b/server/coordinator.go index 897a5f71255..38dd3585a7d 100644 --- a/server/coordinator.go +++ b/server/coordinator.go @@ -206,6 +206,9 @@ func (c *coordinator) run() { scheduleCfg := c.cluster.opt.load() for _, schedulerCfg := range scheduleCfg.Schedulers { if schedulerCfg.Disable { + scheduleCfg.Schedulers[k] = schedulerCfg + k++ + log.Warning("skip create ", schedulerCfg.Type) continue } s, err := schedule.CreateScheduler(schedulerCfg.Type, c.limiter, schedulerCfg.Args...) diff --git a/server/coordinator_test.go b/server/coordinator_test.go index 52e0c8b9e8f..2eda488d67d 100644 --- a/server/coordinator_test.go +++ b/server/coordinator_test.go @@ -479,6 +479,14 @@ func (s *testCoordinatorSuite) TestPersistScheduler(c *C) { c.Assert(newOpt.GetSchedulers(), HasLen, 7) tc.clusterInfo.opt = newOpt + co = newCoordinator(tc.clusterInfo, hbStreams, namespace.DefaultClassifier) + co.run() + c.Assert(co.schedulers, HasLen, 3) + co.stop() + // suppose restart PD again + _, newOpt = newTestScheduleConfig() + newOpt.reload(tc.kv) + tc.clusterInfo.opt = newOpt co = newCoordinator(tc.clusterInfo, hbStreams, namespace.DefaultClassifier) co.run() c.Assert(co.schedulers, HasLen, 3) From df31fca36eaf4923cd2178d04712aae898e47efd Mon Sep 17 00:00:00 2001 From: nolouch Date: Thu, 3 May 2018 11:50:42 +0800 Subject: [PATCH 2/2] address comment --- server/coordinator.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/coordinator.go b/server/coordinator.go index 38dd3585a7d..185b05f14c9 100644 --- a/server/coordinator.go +++ b/server/coordinator.go @@ -208,7 +208,7 @@ func (c *coordinator) run() { if schedulerCfg.Disable { scheduleCfg.Schedulers[k] = schedulerCfg k++ - log.Warning("skip create ", schedulerCfg.Type) + log.Info("skip create ", schedulerCfg.Type) continue } s, err := schedule.CreateScheduler(schedulerCfg.Type, c.limiter, schedulerCfg.Args...)