From 34fb77988e79cbb24e4e3d61d2e4040d308d93e1 Mon Sep 17 00:00:00 2001 From: Mattias Jonsson Date: Thu, 8 May 2025 12:11:06 +0200 Subject: [PATCH] ddl: Fixed a race in test code (#61001) close pingcap/tidb#60134 --- pkg/ddl/tests/partition/multi_domain_test.go | 27 +++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/pkg/ddl/tests/partition/multi_domain_test.go b/pkg/ddl/tests/partition/multi_domain_test.go index e3ebece649..e50f26a273 100644 --- a/pkg/ddl/tests/partition/multi_domain_test.go +++ b/pkg/ddl/tests/partition/multi_domain_test.go @@ -837,19 +837,20 @@ func runMultiSchemaTestWithBackfillDML(t *testing.T, createSQL, alterSQL, backfi domOwner, domNonOwner = domNonOwner, domOwner } - seOwner, err := session.CreateSessionWithDomain(store, domOwner) + seDDLOwner, err := session.CreateSessionWithDomain(store, domOwner) require.NoError(t, err) - seNonOwner, err := session.CreateSessionWithDomain(store, domNonOwner) - require.NoError(t, err) - - tkDDLOwner := testkit.NewTestKitWithSession(t, store, seOwner) + tkDDLOwner := testkit.NewTestKitWithSession(t, store, seDDLOwner) tkDDLOwner.MustExec(`use test`) // Just to ensure we are not relying on the configurable assertions tkDDLOwner.MustExec(`set @@global.tidb_txn_assertion_level = off`) tkDDLOwner.MustExec(`set @@session.tidb_txn_assertion_level = off`) - tkO := testkit.NewTestKitWithSession(t, store, seOwner) + seTkOwner, err := session.CreateSessionWithDomain(store, domOwner) + require.NoError(t, err) + tkO := testkit.NewTestKitWithSession(t, store, seTkOwner) tkO.MustExec(`use test`) - tkNO := testkit.NewTestKitWithSession(t, store, seNonOwner) + seTkNonOwner, err := session.CreateSessionWithDomain(store, domNonOwner) + require.NoError(t, err) + tkNO := testkit.NewTestKitWithSession(t, store, seTkNonOwner) tkNO.MustExec(`use test`) tkDDLOwner.MustExec(createSQL) @@ -904,13 +905,21 @@ func runMultiSchemaTestWithBackfillDML(t *testing.T, createSQL, alterSQL, backfi // This can be used for testing concurrent writes during backfill. testfailpoint.EnableCall(t, "github.com/pingcap/tidb/pkg/ddl/PartitionBackfillData", func(b bool) { if b { + seTk, err := session.CreateSessionWithDomain(store, domOwner) + require.NoError(t, err) + tk := testkit.NewTestKitWithSession(t, store, seTk) + tk.MustExec(`use test`) logutil.BgLogger().Info("XXXXXXXXXXX Concurrent UPDATE!") - tkO.MustExec(backfillDML) + tk.MustExec(backfillDML) } }) } + seDDL, err := session.CreateSessionWithDomain(store, domOwner) + require.NoError(t, err) + tkDDL := testkit.NewTestKitWithSession(t, store, seDDL) + tkDDL.MustExec(`use test`) logutil.BgLogger().Info("XXXXXXXXXXX DDL starting!", zap.String("alterSQL", alterSQL)) - err := tkDDLOwner.ExecToErr(alterSQL) + err = tkDDL.ExecToErr(alterSQL) logutil.BgLogger().Info("XXXXXXXXXXX DDL done!", zap.String("alterSQL", alterSQL)) if backfillDML != "" { testfailpoint.Disable(t, "github.com/pingcap/tidb/pkg/ddl/PartitionBackfillData")