diff --git a/ddl/indexmergetest/BUILD.bazel b/ddl/indexmergetest/BUILD.bazel index 25dfef99ecb3f..5f6e4215f664e 100644 --- a/ddl/indexmergetest/BUILD.bazel +++ b/ddl/indexmergetest/BUILD.bazel @@ -8,6 +8,7 @@ go_test( "merge_test.go", ], flaky = True, + race = "on", shard_count = 4, deps = [ "//config", diff --git a/ddl/indexmergetest/merge_test.go b/ddl/indexmergetest/merge_test.go index a31b3edcc23a4..20bc251c77089 100644 --- a/ddl/indexmergetest/merge_test.go +++ b/ddl/indexmergetest/merge_test.go @@ -478,6 +478,7 @@ func TestAddIndexMergeConflictWithPessimistic(t *testing.T) { callback := &callback.TestDDLCallback{Do: dom} runPessimisticTxn := false + afterPessDML := make(chan struct{}, 1) callback.OnJobRunBeforeExported = func(job *model.Job) { if t.Failed() { return @@ -500,6 +501,7 @@ func TestAddIndexMergeConflictWithPessimistic(t *testing.T) { assert.NoError(t, err) _, err = tk2.Exec("update t set a = 3 where id = 1;") assert.NoError(t, err) + afterPessDML <- struct{}{} } } dom.DDL().SetHook(callback) @@ -515,6 +517,7 @@ func TestAddIndexMergeConflictWithPessimistic(t *testing.T) { case <-afterCommit: require.Fail(t, "should be blocked by the pessimistic txn") } + <-afterPessDML tk2.MustExec("rollback;") <-afterCommit dom.DDL().SetHook(originHook)