diff --git a/pkg/owner/manager.go b/pkg/owner/manager.go index 4422f20a4f0b7..506ad0c198350 100644 --- a/pkg/owner/manager.go +++ b/pkg/owner/manager.go @@ -641,9 +641,7 @@ func AcquireDistributedLock( } return false, nil }) - failpoint.Inject("mockAcquireDistLockFailed", func() { - err = errors.Errorf("requested lease not found") - }) + failpoint.InjectCall("mockAcquireDistLockFailed", &err) if err != nil { err1 := se.Close() if err1 != nil { diff --git a/pkg/util/dbterror/ddl_terror.go b/pkg/util/dbterror/ddl_terror.go index 6e315d6930965..65857f5afc10c 100644 --- a/pkg/util/dbterror/ddl_terror.go +++ b/pkg/util/dbterror/ddl_terror.go @@ -543,4 +543,5 @@ var ReorgRetryableErrCodes = map[uint16]struct{}{ var ReorgRetryableErrMsgs = []string{ "context deadline exceeded", "requested lease not found", + "mvcc: required revision has been compacted", } diff --git a/tests/realtikvtest/addindextest1/disttask_test.go b/tests/realtikvtest/addindextest1/disttask_test.go index 9b92c64e7815d..56d22026c71b2 100644 --- a/tests/realtikvtest/addindextest1/disttask_test.go +++ b/tests/realtikvtest/addindextest1/disttask_test.go @@ -417,10 +417,24 @@ func TestAddIndexDistLockAcquireFailed(t *testing.T) { t.Cleanup(func() { tk.MustExec("set global tidb_enable_dist_task = off;") }) - tk.MustExec("create table t (a int, b int);") - tk.MustExec("insert into t values (1, 1);") - testfailpoint.Enable(t, "github.com/pingcap/tidb/pkg/owner/mockAcquireDistLockFailed", "1*return(true)") - tk.MustExec("alter table t add index idx(b);") + retryableErrs := []string{ + "requested lease not found", + "mvcc: required revision has been compacted", + } + for _, errStr := range retryableErrs { + t.Run(errStr, func(t *testing.T) { + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t (a int, b int);") + tk.MustExec("insert into t values (1, 1);") + var once sync.Once + testfailpoint.EnableCall(t, "github.com/pingcap/tidb/pkg/owner/mockAcquireDistLockFailed", func(errP *error) { + once.Do(func() { + *errP = errors.New(errStr) + }) + }) + tk.MustExec("alter table t add index idx(b);") + }) + } } func TestAddIndexScheduleAway(t *testing.T) {