max_execution_time应当过滤掉DDL操作

Bug 反馈
清晰准确地描述您发现的问题,提供任何可能复现问题的步骤有助于研发同学及时处理问题
【 Bug 的影响】
影响不大,主要是在tidb.log里不断的打印[2022/01/30 15:00:53.815 +08:00] [INFO] [server.go:593] [kill] [connID=15938773] [query=true]的日志。

【可能的问题复现步骤】
4.0.X版本和5.1.X版本测试过,必现,测试步骤如下
1.将 max_execution_time 修改为 3 秒
set global max_execution_time = 3000;
2.对一个100万的表,比如sysbench.sbtest1添加索引
alter table sbtest1 add index idx_c©;
3.添加过程中观察tidb.log,可以过滤关键字 kill

【看到的非预期行为】
tidb.log不断打印kill相关日志
加索引的连接被杀掉

【期望看到的行为】
tidb.log不打印kill相关日志
加索引的连接不会被杀掉
max_execution_time 应该排除掉DDL操作,比如加索引

【相关组件及具体版本】
4.0.X
5.1.X

【其他背景信息或者截图】
如集群拓扑,系统和内核版本,应用 app 信息等;如果问题跟 SQL 有关,请提供 SQL 语句和相关表的 Schema 信息;如果节点日志存在关键报错,请提供相关节点的日志内容或文件;如果一些业务敏感信息不便提供,请留下联系方式,我们与您私下沟通。

这个参数和mysql确实是不一样的。目前对所有类型的语句生效,并非只对 SELECT 语句生效,与 MySQL 不同(只对 SELECT 语句生效)。实际精度在 100ms 级别,而非更准确的毫秒级别。参考文档https://docs.pingcap.com/zh/tidb/stable/system-variables/#max_execution_time

2 个赞

没必要过滤

可以不过滤吧

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。