mariadb/mysql-test/main/kill-2.test
Sergey Vojtovich 5b0c2ed259 MDEV-13257 - main.kill-2 failed in buildbot
Test output was affected by incompletely closed preceding connections.

Make test agnostic to concurrent connections by querying
information_schema.processlist only for connections that it uses.

Avoid querying for i_s.processlist db column. It is unstable due to
trylock_short(), can be "" if concurrent connection is holding
LOCK_thd_data.
2025-11-20 23:15:34 +04:00

58 lines
1.6 KiB
Text

#
# Test KILL and KILL QUERY statements.
#
# Killing a connection in an embedded server does not work like in a normal
# server, if it is waiting for a new statement. In an embedded server, the
# connection does not read() from a socket, but returns control to the
# application. 'mysqltest' does not handle the kill request.
#
-- source include/not_embedded.inc
--echo #
--echo # MDEV-6896 kill user command cause MariaDB crash!
--echo #
--disable_service_connection
create user foo@'127.0.0.1';
--connect (con1,127.0.0.1,foo,,)
let $con1_id= `select connection_id()`;
--connection default
evalp select user from information_schema.processlist where id=$con1_id;
kill user foo@'127.0.0.1';
let $wait_condition=
select count(*) = 0 from information_schema.processlist
where user = "foo";
--source include/wait_condition.inc
drop user foo@'127.0.0.1';
--enable_service_connection
--echo #
--echo # KILL USER and missing privileges
--echo #
let $default_id= `select connection_id()`;
create user a@'127.0.0.1';
create user b@'127.0.0.1';
grant process on *.* to a@'127.0.0.1';
grant select on *.* to b@'127.0.0.1';
--connect a,127.0.0.1,a
show grants;
--connect b,127.0.0.1,b
let $b_id= `select connection_id()`;
--replace_column 1 # 3 # 5 # 6 # 9 #
show processlist;
kill user a; # existing connection, but not visible to current_user
kill user x; # not existing connection
--connection a
evalp select user from information_schema.processlist where id in (connection_id(), $b_id, $default_id) order by user;
--error ER_KILL_DENIED_ERROR
kill user b;
--connection default
drop user a@'127.0.0.1';
drop user b@'127.0.0.1';
--echo #
--echo # End of 10.3 tests
--echo #