1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-6619 SHOW PROCESSLIST returns empty result set after KILL QUERY

don't send an OK packet if the SHOW PROCESSLIST was killed
This commit is contained in:
Sergei Golubchik
2014-09-12 08:41:35 +02:00
parent 3d94523638
commit 269f0a6871
3 changed files with 97 additions and 66 deletions

View File

@ -0,0 +1,14 @@
connect con1,localhost,root,,;
SHOW PROCESSLIST;
Id User Host db Command Time State Info Progress
# root # test Sleep # # NULL 0.000
# root # test Query # # SHOW PROCESSLIST 0.000
connection default;
KILL QUERY con_id;
connection con1;
SHOW PROCESSLIST;
ERROR 70100: Query execution was interrupted
SHOW PROCESSLIST;
Id User Host db Command Time State Info Progress
# root # test Sleep # # NULL 0.000
# root # test Query # # SHOW PROCESSLIST 0.000

View File

@ -0,0 +1,17 @@
#
# MDEV-6619 SHOW PROCESSLIST returns empty result set after KILL QUERY
#
--source include/not_embedded.inc
--enable_connect_log
--connect (con1,localhost,root,,)
--let $con_id = `SELECT CONNECTION_ID()`
--replace_column 1 # 3 # 6 # 7 #
SHOW PROCESSLIST;
--connection default
--replace_result $con_id con_id
eval KILL QUERY $con_id;
--connection con1
--error ER_QUERY_INTERRUPTED
SHOW PROCESSLIST;
--replace_column 1 # 3 # 6 # 7 #
SHOW PROCESSLIST;

View File

@ -2178,9 +2178,10 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF))
DBUG_VOID_RETURN;
if (thd->killed)
DBUG_VOID_RETURN;
mysql_mutex_lock(&LOCK_thread_count); // For unlink from list
if (!thd->killed)
{
I_List_iterator<THD> it(threads);
THD *tmp;
while ((tmp=it++))
@ -2250,7 +2251,6 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
thread_infos.append(thd_info);
}
}
}
mysql_mutex_unlock(&LOCK_thread_count);
thread_info *thd_info;