无法kill 正在执行的任务

image
执行kill操作后线程仍然在执行。怎么回事?需要其他额外操作吗?

1赞

没看明白,怎么解决的?

1赞

我记得kill只能kill掉在同一个tidb-server节点的sql语句,不能kill掉其他tidb节点的sql

1赞

是因为负载均衡的原因吧,只能kill你登录那个节点的连接

1赞

SHOW PROCESSLIST不是查询正在执行的sql语句,比如我在Navicat工具打开表,SHOW PROCESSLIST也能查到,我关掉窗口后进程就没了

2赞

SHOW PROCESSLIST虽然不一定有查询正在执行的sql语句,但是连接一样可以kill的,这一点和mysql并没有区别,我猜测是你执行show processlist和kill命令由于负载均衡没打到同一个tidb节点

3赞

同意楼上的观点

select * from information_schema.cluster_processlist where command!=‘Sleep’;这么查,里面有个instance字段,需要到对应的tidb上kill才管用

只能kill到当前节点的sql执行,其他的节点没有kill行为

1赞

从3.0版本到5.1版本,执行的kil tidb id号 没有成功过:joy:

有效的。。就是你用客户端工具打开表也会产生一个进程,那个是kill不掉的

1赞

可以kill~

用客户端工具打开表产生的进程,也可以kill掉,姐普通的进程没有区别

试过了呀,真滴不行,手动去关掉然后去查才发现进程被kill了

我这测试可以的~,你先开一个窗口,然后用别的session去kill这个窗口的线程,再回来这个窗口查询会报错连接已经失效,然后这个窗口的ID就会变了,因为是客户端工具重新开启了一个session。

可能不同的工具不一样吧,我用Navicat是不行的。这是小问题,知道原因就行了

版本 4.0.13
kill tidb id ;
杀不掉会话

client 连接集群后,确实杀不掉session的,能杀掉的是什么情况

1赞

是在对应的tidb实例上去执行kill么