Skip to content

Commit 62b2ede

Browse files
D3Hunterti-chi-bot
authored andcommitted
This is an automated cherry-pick of pingcap#58495
Signed-off-by: ti-chi-bot <[email protected]>
1 parent 263e7b7 commit 62b2ede

File tree

9 files changed

+2397
-0
lines changed

9 files changed

+2397
-0
lines changed

pkg/ddl/cancel_test.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,21 @@ func cancelSuccess(rs *testkit.Result) bool {
204204
return strings.Contains(rs.Rows()[0][1].(string), "success")
205205
}
206206

207+
<<<<<<< HEAD
207208
func TestCancel(t *testing.T) {
208209
store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 100*time.Millisecond)
210+
=======
211+
func TestCancelVariousJobs(t *testing.T) {
212+
var enterCnt, exitCnt atomic.Int32
213+
testfailpoint.EnableCall(t, "github.com/pingcap/tidb/pkg/ddl/beforeDeliveryJob", func(job *model.Job) { enterCnt.Add(1) })
214+
testfailpoint.EnableCall(t, "github.com/pingcap/tidb/pkg/ddl/afterDeliveryJob", func(job *model.JobW) { exitCnt.Add(1) })
215+
waitDDLWorkerExited := func() {
216+
require.Eventually(t, func() bool {
217+
return enterCnt.Load() == exitCnt.Load()
218+
}, 10*time.Second, 10*time.Millisecond)
219+
}
220+
store := testkit.CreateMockStoreWithSchemaLease(t, 100*time.Millisecond, mockstore.WithMockTiFlash(2))
221+
>>>>>>> 46aa33bb9d2 (ddl: fix job state overridden when concurrent updates don't overlap in time range (#58495))
209222
tk := testkit.NewTestKit(t, store)
210223
tkCancel := testkit.NewTestKit(t, store)
211224

@@ -352,6 +365,7 @@ func TestCancelForAddUniqueIndex(t *testing.T) {
352365
require.Equal(t, 0, len(tbl.Meta().Indices))
353366
}
354367

368+
<<<<<<< HEAD
355369
func TestSubmitJobAfterDDLIsClosed(t *testing.T) {
356370
store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithStoreType(mockstore.EmbedUnistore))
357371
tk := testkit.NewTestKit(t, store)
@@ -365,4 +379,27 @@ func TestSubmitJobAfterDDLIsClosed(t *testing.T) {
365379
require.NoError(t, err)
366380
require.Error(t, ddlErr)
367381
require.Equal(t, "context canceled", ddlErr.Error())
382+
=======
383+
func TestCancelJobBeforeRun(t *testing.T) {
384+
store := testkit.CreateMockStore(t)
385+
tk := testkit.NewTestKit(t, store)
386+
tkCancel := testkit.NewTestKit(t, store)
387+
388+
// Prepare schema.
389+
tk.MustExec("use test")
390+
tk.MustExec(`create table t (c1 int, c2 int, c3 int)`)
391+
tk.MustExec("insert into t values(1, 1, 1)")
392+
tk.MustQuery("select * from t").Check(testkit.Rows("1 1 1"))
393+
394+
counter := 0
395+
testfailpoint.EnableCall(t, "github.com/pingcap/tidb/pkg/ddl/beforeTransitOneJobStep", func(jobW *model.JobW) {
396+
if counter == 0 && jobW.TableName == "t" {
397+
tkCancel.MustExec(fmt.Sprintf("admin cancel ddl jobs %d", jobW.ID))
398+
counter++
399+
}
400+
})
401+
402+
tk.MustGetErrCode("truncate table t", errno.ErrCancelledDDLJob)
403+
tk.MustQuery("select * from t").Check(testkit.Rows("1 1 1"))
404+
>>>>>>> 46aa33bb9d2 (ddl: fix job state overridden when concurrent updates don't overlap in time range (#58495))
368405
}

pkg/ddl/ddl_api_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,13 @@ func TestCreateViewConcurrently(t *testing.T) {
169169
counterErr = fmt.Errorf("create view job should not run concurrently")
170170
return
171171
}
172+
<<<<<<< HEAD:pkg/ddl/ddl_api_test.go
172173
}
173174
ddl.AfterDeliverToWorkerForTest = func(job *model.Job) {
175+
=======
176+
})
177+
testfailpoint.EnableCall(t, "github.com/pingcap/tidb/pkg/ddl/afterDeliveryJob", func(job *model.JobW) {
178+
>>>>>>> 46aa33bb9d2 (ddl: fix job state overridden when concurrent updates don't overlap in time range (#58495)):pkg/ddl/executor_test.go
174179
if job.Type == model.ActionCreateView {
175180
counter--
176181
}

0 commit comments

Comments
 (0)