summaryrefslogtreecommitdiff
path: root/mysql-test/t/kill.test
blob: c8adff32eb7ec6543fee0a9f9db209a7a4248c79 (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
# This test doesn't work with the embedded version as this code
# assumes that one query is running while we are doing queries on
# a second connection.
# This would work if mysqltest run would be threaded and handle each
# connection in a separate thread.
#
-- source include/not_embedded.inc

connect (con1, localhost, root,,);
connect (con2, localhost, root,,);

#remember id of con1
connection con1;
--disable_warnings
drop table if exists t1;
--enable_warnings

create table t1 (kill_id int);
insert into t1 values(connection_id());

#kill con1
connection con2;
select ((@id := kill_id) - kill_id) from t1; 
kill @id;

# Wait for thread to do.
--sleep 5
# verify that con1 is doning a reconnect
connection con1;
ping
ping
select @id != connection_id();

#make sure the server is still alive
connection con2;
select 4;
drop table t1;

#
# test of blocking of sending ERROR after OK or EOF
#
connection con1;
select get_lock("a", 10);
connection con2;
let $ID= `select connection_id()`;
send select get_lock("a", 10);
-- sleep 2
connection con1;
disable_query_log;
eval kill query $ID;
enable_query_log;
connection con2;
reap;
select 1;
connection con1;
select RELEASE_LOCK("a");