diff --git a/server/cluster/coordinator_test.go b/server/cluster/coordinator_test.go index 84c43b7e60b..159e61566ae 100644 --- a/server/cluster/coordinator_test.go +++ b/server/cluster/coordinator_test.go @@ -859,6 +859,7 @@ func TestRemoveScheduler(t *testing.T) { re.NoError(co.removeScheduler(schedulers.HotRegionName)) re.NoError(co.removeScheduler(schedulers.GrantLeaderName)) re.NoError(co.removeScheduler(schedulers.SplitBucketName)) + re.NoError(co.removeScheduler(schedulers.TransferWitnessLeaderName)) // all removed sches, _, err = storage.LoadAllScheduleConfig() re.NoError(err) @@ -877,7 +878,7 @@ func TestRemoveScheduler(t *testing.T) { co.run() re.Empty(co.schedulers) // the option remains default scheduler - re.Len(co.cluster.opt.GetSchedulers(), 4) + re.Len(co.cluster.opt.GetSchedulers(), 5) co.stop() co.wg.Wait() } diff --git a/server/schedulers/transfer_witness_leader.go b/server/schedulers/transfer_witness_leader.go index 42d63197e4e..d30a2510921 100644 --- a/server/schedulers/transfer_witness_leader.go +++ b/server/schedulers/transfer_witness_leader.go @@ -135,6 +135,9 @@ func (s *transferLeaderScheduler) scheduleTransferWitnessLeader(name, typ string } func NeedTransferWitnessLeader(region *core.RegionInfo) bool { + if region == nil || region.GetLeader() == nil { + return false + } return region.GetLeader().IsWitness }