ddl: make waitGroup.Done() the last function to be called (#42682)

close pingcap/tidb#42653
This commit is contained in:
tangenta
2023-03-29 18:20:54 +08:00
committed by GitHub
parent 6057f63d03
commit dbfeef9d46

View File

@ -446,10 +446,10 @@ func (w *backfillWorker) runTask(task *reorgBackfillTask) (result *backfillResul
func (w *backfillWorker) run(d *ddlCtx, bf backfiller, job *model.Job) {
logutil.BgLogger().Info("[ddl] backfill worker start", zap.Stringer("worker", w))
var curTaskID int
defer w.wg.Done()
defer util.Recover(metrics.LabelDDL, "backfillWorker.run", func() {
w.resultCh <- &backfillResult{taskID: curTaskID, err: dbterror.ErrReorgPanic}
}, false)
defer w.wg.Done()
for {
if util.HasCancelled(w.ctx) {
logutil.BgLogger().Info("[ddl] backfill worker exit on context done", zap.Stringer("worker", w))