summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/kill-2.test
blob: 9bc4fe03346c006cf57f3edd21033b3fe7bcc26c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#
# 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,,)

--connection default
select user from information_schema.processlist;
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 #
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
--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
--replace_column 1 # 3 # 5 # 6 # 7 # 8 # 9 #
show processlist;
--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 #