diff --git a/internal/querycoordv2/checkers/segment_checker.go b/internal/querycoordv2/checkers/segment_checker.go index 463d37a5f7..5e0835c96a 100644 --- a/internal/querycoordv2/checkers/segment_checker.go +++ b/internal/querycoordv2/checkers/segment_checker.go @@ -364,13 +364,13 @@ func (c *SegmentChecker) createSegmentLoadTasks(ctx context.Context, segments [] plans := make([]balance.SegmentAssignPlan, 0) for shard, segments := range shardSegments { // if channel is not subscribed yet, skip load segments - if len(c.dist.LeaderViewManager.GetLeadersByShard(shard)) == 0 { + leader := c.dist.LeaderViewManager.GetLatestLeadersByReplicaShard(replica, shard) + if leader == nil { continue } // L0 segment can only be assign to shard leader's node if isLevel0 { - leader := c.dist.LeaderViewManager.GetLatestLeadersByReplicaShard(replica, shard) availableNodes = []int64{leader.ID} }