From 872d8da1546baae608fd8af3d6bcf3bc7afed4ee Mon Sep 17 00:00:00 2001 From: caojiafeng Date: Mon, 14 Jan 2019 17:10:50 +0800 Subject: [PATCH] scheduler: add more nil-check code in adjacent_region (#1403) scheduler: add more nil-check code in adjacent_region --- server/schedulers/adjacent_region.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server/schedulers/adjacent_region.go b/server/schedulers/adjacent_region.go index 7bdb5710d35..2186cd8e234 100644 --- a/server/schedulers/adjacent_region.go +++ b/server/schedulers/adjacent_region.go @@ -258,7 +258,9 @@ func (l *balanceAdjacentRegionScheduler) disperseLeader(cluster schedule.Cluster } storesInfo := make([]*core.StoreInfo, 0, len(diffPeers)) for _, p := range diffPeers { - storesInfo = append(storesInfo, cluster.GetStore(p.GetStoreId())) + if store := cluster.GetStore(p.GetStoreId()); store != nil { + storesInfo = append(storesInfo, store) + } } target := l.selector.SelectTarget(cluster, storesInfo) if target == nil { @@ -279,6 +281,10 @@ func (l *balanceAdjacentRegionScheduler) dispersePeer(cluster schedule.Cluster, leaderStoreID := region.GetLeader().GetStoreId() stores := cluster.GetRegionStores(region) source := cluster.GetStore(leaderStoreID) + if source == nil { + return nil + } + scoreGuard := schedule.NewDistinctScoreFilter(cluster.GetLocationLabels(), stores, source) excludeStores := region.GetStoreIds() for _, storeID := range l.cacheRegions.assignedStoreIds {