Skip to content

Commit b45a9e8

Browse files
authored
sysvar: add validation check for tidb_max_dist_task_nodes (#59645)
ref #58944
1 parent 42075e6 commit b45a9e8

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

pkg/disttask/framework/integrationtests/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ go_test(
1717
],
1818
flaky = True,
1919
race = "off",
20-
shard_count = 22,
20+
shard_count = 23,
2121
deps = [
2222
"//pkg/config",
2323
"//pkg/ddl",

pkg/disttask/framework/integrationtests/framework_scope_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,3 +188,19 @@ func TestTargetScope(t *testing.T) {
188188
})
189189
}
190190
}
191+
192+
func TestTiDBMaxDistTaskNodesSettings(t *testing.T) {
193+
store := testkit.CreateMockStore(t)
194+
tk := testkit.NewTestKit(t, store)
195+
196+
tk.MustExec(`set global tidb_max_dist_task_nodes=-1`)
197+
tk.MustQuery("select @@global.tidb_max_dist_task_nodes").Check(testkit.Rows("-1"))
198+
tk.MustExec(`set global tidb_max_dist_task_nodes=1`)
199+
tk.MustQuery("select @@global.tidb_max_dist_task_nodes").Check(testkit.Rows("1"))
200+
tk.MustExec(`set global tidb_max_dist_task_nodes=128`)
201+
tk.MustQuery("select @@global.tidb_max_dist_task_nodes").Check(testkit.Rows("128"))
202+
203+
tk.MustGetErrMsg(`set global tidb_max_dist_task_nodes=0`, "max_dist_task_nodes should be -1 or [1, 128]")
204+
tk.MustExec(`set global tidb_max_dist_task_nodes=129`)
205+
tk.MustQuery("select @@global.tidb_max_dist_task_nodes").Check(testkit.Rows("128"))
206+
}

pkg/sessionctx/variable/sysvar.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3422,7 +3422,15 @@ var defaultSysVars = []*SysVar{
34223422
s.SharedLockPromotion = TiDBOptOn(val)
34233423
return nil
34243424
}},
3425-
{Scope: vardef.ScopeGlobal | vardef.ScopeSession, Name: vardef.TiDBMaxDistTaskNodes, Value: strconv.Itoa(vardef.DefTiDBMaxDistTaskNodes), Type: vardef.TypeInt, MinValue: -1, MaxValue: 128},
3425+
{Scope: vardef.ScopeGlobal | vardef.ScopeSession, Name: vardef.TiDBMaxDistTaskNodes, Value: strconv.Itoa(vardef.DefTiDBMaxDistTaskNodes), Type: vardef.TypeInt, MinValue: -1, MaxValue: 128,
3426+
Validation: func(s *SessionVars, normalizedValue string, originalValue string, scope vardef.ScopeFlag) (string, error) {
3427+
maxNodes := TidbOptInt(normalizedValue, vardef.DefTiDBMaxDistTaskNodes)
3428+
if maxNodes == 0 {
3429+
return normalizedValue, errors.New("max_dist_task_nodes should be -1 or [1, 128]")
3430+
}
3431+
return normalizedValue, nil
3432+
},
3433+
},
34263434
{Scope: vardef.ScopeGlobal, Name: vardef.TiDBTSOClientRPCMode, Value: vardef.DefTiDBTSOClientRPCMode, Type: vardef.TypeEnum, PossibleValues: []string{vardef.TSOClientRPCModeDefault, vardef.TSOClientRPCModeParallel, vardef.TSOClientRPCModeParallelFast},
34273435
SetGlobal: func(_ context.Context, s *SessionVars, val string) error {
34283436
return (*SetPDClientDynamicOption.Load())(vardef.TiDBTSOClientRPCMode, val)

0 commit comments

Comments
 (0)