Skip to content

local backend: worker error is eaten on some case #47781

@D3Hunter

Description

@D3Hunter

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

suppose when execute job we return the remaining storage capacity of TiKV(%s) is less than 10%%, the context will be cancelled

for i := 0; i < local.WorkerConcurrency; i++ {
workGroup.Go(func() error {
return local.startWorker(workerCtx, jobToWorkerCh, jobFromWorkerCh, &jobWg)
})
}

then here we noticed that context cancelled and return context cancelled error(might be wrapped inside other error, such as rpc error: code = Canceled desc = context canceled: [BR:PD:ErrPDBatchScanRegion]batch scan region" during page scan regions)

err := local.prepareAndSendJob(

and in here, we record this context cancelled err, not the err that causes context cancel is eaten
if err != nil {
firstErr.Set(err)
workerCancel()
_ = workGroup.Wait()
return firstErr.Get()
}

2. What did you expect to see? (Required)

3. What did you see instead (Required)

4. What is your TiDB version? (Required)

master

Metadata

Metadata

Assignees

No one assigned

    Labels

    affects-7.1This bug affects the 7.1.x(LTS) versions.affects-7.5This bug affects the 7.5.x(LTS) versions.component/ddlThis issue is related to DDL of TiDB.severity/moderatetype/bugThe issue is confirmed as a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions