diff --git a/pkg/statistics/handle/syncload/stats_syncload.go b/pkg/statistics/handle/syncload/stats_syncload.go index 8091998f743df..c4d2373ed473f 100644 --- a/pkg/statistics/handle/syncload/stats_syncload.go +++ b/pkg/statistics/handle/syncload/stats_syncload.go @@ -83,9 +83,10 @@ func (s *statsSyncLoad) SendLoadRequests(sc *stmtctx.StatementContext, neededHis timer := time.NewTimer(timeout) defer timer.Stop() for _, item := range remainedItems { - resultCh := globalStatsSyncLoadSingleFlight.DoChan(item.Key(), func() (any, error) { + localItem := item + resultCh := globalStatsSyncLoadSingleFlight.DoChan(localItem.Key(), func() (any, error) { task := &statstypes.NeededItemTask{ - Item: item, + Item: localItem, ToTimeout: time.Now().Local().Add(timeout), ResultCh: make(chan stmtctx.StatsLoadResult), }