diff --git a/server/coordinator.go b/server/coordinator.go index b27c4af1b86..f800d949f55 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.Info("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)