kill语句后,在processlist中仍然能看到

【TiDB 使用环境】生产环境
【TiDB 版本】v6.5.3
【操作系统】
【部署方式】机器部署
【集群数据量】
【集群节点数】
【问题复现路径】无
【遇到的问题:问题现象及影响】
应用循环执行多个语句,发现有语句执行时间过长,执行kill之后,在cluster_processlist中仍然能看到,并且Time字段一直在增加。这个版本已经支持全局kill了。
这种情况下,语句被kill掉了么?如果被kill掉了,为什么还在cluster_processlist里?如果没被kill掉,如何终止这些sql?

这个问题如果是别人问,我可能会说试试 kill tidb,连的节点不对之类的。

孔大师问的话,必有蹊跷!

这个版本已经支持全局kill了

什么版本,这个和 mysql 一样,都需要走到指定位置才可以 kill。

1 个赞

:thinking:如果这样的话,kill就没有意义了吧。

和MySQL还是有区别的。

线程类的数据库是要走到安全的埋点地方才能 kill。
进程类的数据库直接操作系统 kill 进程。像Oracle。直接是操作系统杀进程,然后 pmon 去做清理。postgresql 类似。

5 个赞

运维中经常碰到类似的问题,我们一般最后都是重启节点解决。

:thinking:额。。。生产环境不能随便重启啊。。。

tidb是线程,不是全局kill的

:yum:官方现在支持全局kill了,看上面的文档

我的经验就是一直等,时间不可控的

:flushed:好吧,那只能考虑升级了,也可能是这个版本的小bug

升级吧,有一些 kill 不掉的 bug,比如落盘的 sql,有视图的 sql 记不清了。

升级吧。653 第三位可以考虑升级到比较新。

2 个赞

:thinking:好吧,看来确实是需要升级了。

具体哪个版本修复了全局kill不掉的情况?

好像6.5。12 版本更好用些,修复了一些bug

1 个赞

从v6.1.0版本开始支持的。

准备升级v7了。

不是说有bug吗,哪个版本修复的这个bug

1 个赞