15
15
package syncload
16
16
17
17
import (
18
+ stderrors "errors"
18
19
"math/rand"
19
20
"runtime"
20
21
"time"
@@ -350,7 +351,7 @@ func (s *statsSyncLoad) handleOneItemTask(task *statstypes.NeededItemTask) (err
350
351
t := time .Now ()
351
352
needUpdate := false
352
353
wrapper , err = s .readStatsForOneItem (sctx , item , wrapper , isPkIsHandle , task .Item .FullLoad )
353
- if err != nil {
354
+ if err != nil || stderrors . As ( err , failToGetHistMeta ) {
354
355
return err
355
356
}
356
357
if item .IsIndex {
@@ -369,6 +370,8 @@ func (s *statsSyncLoad) handleOneItemTask(task *statstypes.NeededItemTask) (err
369
370
return nil
370
371
}
371
372
373
+ var failToGetHistMeta = errors .New ("fail to get hist meta" )
374
+
372
375
// readStatsForOneItem reads hist for one column/index, TODO load data via kv-get asynchronously
373
376
func (* statsSyncLoad ) readStatsForOneItem (sctx sessionctx.Context , item model.TableItemID , w * statsWrapper , isPkIsHandle bool , fullLoad bool ) (* statsWrapper , error ) {
374
377
failpoint .Inject ("mockReadStatsForOnePanic" , nil )
@@ -389,7 +392,7 @@ func (*statsSyncLoad) readStatsForOneItem(sctx sessionctx.Context, item model.Ta
389
392
logutil .BgLogger ().Error ("fail to get hist meta for this histogram, possibly a deleted one" , zap .Int64 ("table_id" , item .TableID ),
390
393
zap .Int64 ("hist_id" , item .ID ), zap .Bool ("is_index" , item .IsIndex ))
391
394
// Although it is errors, we don't return err, because raise error will have to retry. it is unnecessay.
392
- return nil , nil
395
+ return nil , failToGetHistMeta
393
396
}
394
397
if item .IsIndex {
395
398
isIndexFlag = 1
0 commit comments