diff --git a/pkg/mcs/scheduling/server/cluster.go b/pkg/mcs/scheduling/server/cluster.go index 7647a96818d..28a04c5640a 100644 --- a/pkg/mcs/scheduling/server/cluster.go +++ b/pkg/mcs/scheduling/server/cluster.go @@ -187,7 +187,7 @@ func (c *Cluster) UpdateRegionsLabelLevelStats(regions []*core.RegionInfo) { func (c *Cluster) getStoresWithoutLabelLocked(region *core.RegionInfo, key, value string) []*core.StoreInfo { stores := make([]*core.StoreInfo, 0, len(region.GetPeers())) for _, p := range region.GetPeers() { - if store := c.GetStore(p.StoreId); store != nil && !core.IsStoreContainLabel(store.GetMeta(), key, value) { + if store := c.GetStore(p.GetStoreId()); store != nil && !core.IsStoreContainLabel(store.GetMeta(), key, value) { stores = append(stores, store) } } diff --git a/server/grpc_service.go b/server/grpc_service.go index e59cac979c8..128bd7af5da 100644 --- a/server/grpc_service.go +++ b/server/grpc_service.go @@ -1031,7 +1031,8 @@ func (s *GrpcServer) StoreHeartbeat(ctx context.Context, request *pdpb.StoreHear func (s *GrpcServer) updateSchedulingClient(ctx context.Context) { forwardedHost, _ := s.GetServicePrimaryAddr(ctx, utils.SchedulingServiceName) - if forwardedHost != "" && forwardedHost != s.schedulingClient.Load().(*schedulingClient).getPrimaryAddr() { + pre := s.schedulingClient.Load() + if forwardedHost != "" && (pre != nil && forwardedHost != pre.(*schedulingClient).getPrimaryAddr()) { client, err := s.getDelegateClient(ctx, forwardedHost) if err != nil { log.Error("get delegate client failed", zap.Error(err))