diff options
author | Michael Widenius <monty@mariadb.org> | 2018-03-09 14:05:35 +0200 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2018-03-29 13:59:44 +0300 |
commit | a7abddeffa6a760ce948c2dfb007cdf3f1a369d5 (patch) | |
tree | 70eb743fa965a17380bbc0ac88ae79ca1075b896 /mysql-test/main/kill.result | |
parent | ab1941266c59a19703a74b5593cf3f508a5752d7 (diff) | |
download | mariadb-git-a7abddeffa6a760ce948c2dfb007cdf3f1a369d5.tar.gz |
Create 'main' test directory and move 't' and 'r' there
Diffstat (limited to 'mysql-test/main/kill.result')
-rw-r--r-- | mysql-test/main/kill.result | 401 |
1 files changed, 401 insertions, 0 deletions
diff --git a/mysql-test/main/kill.result b/mysql-test/main/kill.result new file mode 100644 index 00000000000..dc1cb9252da --- /dev/null +++ b/mysql-test/main/kill.result @@ -0,0 +1,401 @@ +set local sql_mode=""; +set global sql_mode=""; +SET DEBUG_SYNC = 'RESET'; +DROP TABLE IF EXISTS t1, t2, t3; +DROP FUNCTION IF EXISTS MY_KILL; +CREATE FUNCTION MY_KILL(tid INT) RETURNS INT +BEGIN +DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END; +KILL tid; +RETURN (SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = tid); +END| +connect con1, localhost, root,,; +connect con2, localhost, root,,; +connection con1; +connection con2; +connection con1; +SET DEBUG_SYNC= 'thread_end SIGNAL con1_end'; +SET DEBUG_SYNC= 'before_do_command_net_read SIGNAL con1_read'; +connection con2; +SET DEBUG_SYNC='now WAIT_FOR con1_read'; +SET DEBUG_SYNC= 'now WAIT_FOR con1_end'; +SET DEBUG_SYNC = 'RESET'; +connection con1; +SELECT 1; +Got one of the listed errors +SELECT 1; +1 +1 +SELECT @id != CONNECTION_ID(); +@id != CONNECTION_ID() +1 +connection con2; +SELECT 4; +4 +4 +connection default; +KILL (SELECT COUNT(*) FROM mysql.user); +ERROR 42000: KILL does not support subqueries or stored functions +connection con1; +connection con2; +connection con1; +SET DEBUG_SYNC= 'thread_end SIGNAL con1_end'; +SET DEBUG_SYNC= 'before_do_command_net_read SIGNAL con1_read WAIT_FOR kill'; +connection con2; +SET DEBUG_SYNC= 'now WAIT_FOR con1_read'; +SET DEBUG_SYNC= 'now WAIT_FOR con1_end'; +SET DEBUG_SYNC = 'RESET'; +connection con1; +SELECT 1; +Got one of the listed errors +SELECT 1; +1 +1 +SELECT @id != CONNECTION_ID(); +@id != CONNECTION_ID() +1 +connection con2; +SELECT 4; +4 +4 +connection default; +CREATE TABLE t1 (id INT PRIMARY KEY AUTO_INCREMENT); +CREATE TABLE t2 (id INT UNSIGNED NOT NULL); +INSERT INTO t1 VALUES +(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0), +(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0), +(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0), +(0),(0),(0),(0),(0),(0),(0),(0), (0),(0),(0),(0),(0),(0),(0),(0); +INSERT t1 SELECT 0 FROM t1 AS a1, t1 AS a2 LIMIT 4032; +INSERT INTO t2 SELECT id FROM t1; +connection con1; +connection con2; +connection con1; +SET DEBUG_SYNC= 'thread_end SIGNAL con1_end'; +SET DEBUG_SYNC= 'before_acos_function SIGNAL in_sync'; +SELECT id FROM t1 WHERE id IN +(SELECT DISTINCT a.id FROM t2 a, t2 b, t2 c, t2 d +GROUP BY ACOS(1/a.id), b.id, c.id, d.id +HAVING a.id BETWEEN 10 AND 20); +connection con2; +SET DEBUG_SYNC= 'now WAIT_FOR in_sync'; +KILL @id; +SET DEBUG_SYNC= 'now WAIT_FOR con1_end'; +connection con1; +Got one of the listed errors +SELECT 1; +1 +1 +connection default; +SET DEBUG_SYNC = 'RESET'; +DROP TABLE t1, t2; +connection con1; +connection con2; +connection con1; +SET DEBUG_SYNC= 'before_acos_function SIGNAL in_sync WAIT_FOR kill'; +SELECT ACOS(0); +connection con2; +SET DEBUG_SYNC= 'now WAIT_FOR in_sync'; +KILL QUERY @id; +connection con1; +ACOS(0) +1.5707963267948966 +SELECT 1; +1 +1 +SELECT @id = CONNECTION_ID(); +@id = CONNECTION_ID() +1 +connection default; +SET DEBUG_SYNC = 'RESET'; +CREATE TABLE t1 (f1 INT); +CREATE FUNCTION bug27563() RETURNS INT(11) +DETERMINISTIC +BEGIN +DECLARE CONTINUE HANDLER FOR SQLSTATE '70100' SET @a:= 'killed'; +DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception'; +SET DEBUG_SYNC= 'now SIGNAL in_sync WAIT_FOR kill'; +RETURN 1; +END| +connection con1; +connection con2; +connection con1; +INSERT INTO t1 VALUES (bug27563()); +connection con2; +SET DEBUG_SYNC= 'now WAIT_FOR in_sync'; +KILL QUERY @id; +connection con1; +ERROR 70100: Query execution was interrupted +SELECT * FROM t1; +f1 +connection default; +SET DEBUG_SYNC = 'RESET'; +INSERT INTO t1 VALUES(0); +connection con1; +UPDATE t1 SET f1= bug27563(); +connection con2; +SET DEBUG_SYNC= 'now WAIT_FOR in_sync'; +KILL QUERY @id; +connection con1; +ERROR 70100: Query execution was interrupted +SELECT * FROM t1; +f1 +0 +connection default; +SET DEBUG_SYNC = 'RESET'; +INSERT INTO t1 VALUES(1); +connection con1; +DELETE FROM t1 WHERE bug27563() IS NULL; +connection con2; +SET DEBUG_SYNC= 'now WAIT_FOR in_sync'; +KILL QUERY @id; +connection con1; +ERROR 70100: Query execution was interrupted +SELECT * FROM t1; +f1 +0 +1 +connection default; +SET DEBUG_SYNC = 'RESET'; +connection con1; +SELECT * FROM t1 WHERE f1= bug27563(); +connection con2; +SET DEBUG_SYNC= 'now WAIT_FOR in_sync'; +KILL QUERY @id; +connection con1; +ERROR 70100: Query execution was interrupted +SELECT * FROM t1; +f1 +0 +1 +connection default; +SET DEBUG_SYNC = 'RESET'; +DROP FUNCTION bug27563; +CREATE TABLE t2 (f2 INT); +CREATE TRIGGER trg27563 BEFORE INSERT ON t1 FOR EACH ROW +BEGIN +DECLARE CONTINUE HANDLER FOR SQLSTATE '70100' SET @a:= 'killed'; +DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception'; +INSERT INTO t2 VALUES(0); +SET DEBUG_SYNC= 'now SIGNAL in_sync WAIT_FOR kill'; +INSERT INTO t2 VALUES(1); +END| +connection con1; +INSERT INTO t1 VALUES(2),(3); +connection con2; +SET DEBUG_SYNC= 'now WAIT_FOR in_sync'; +KILL QUERY @id; +connection con1; +ERROR 70100: Query execution was interrupted +SELECT * FROM t1; +f1 +0 +1 +SELECT * FROM t2; +f2 +0 +connection default; +SET DEBUG_SYNC = 'RESET'; +DROP TABLE t1, t2; +connection con1; +connection con2; +connection con1; +SET SESSION optimizer_search_depth=0; +SET DEBUG_SYNC= 'before_join_optimize SIGNAL in_sync'; +PREPARE stmt FROM 'EXPLAIN SELECT * FROM t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,t21,t22,t23,t24,t25,t26,t27,t28,t29,t30,t31,t32,t33,t34,t35,t36,t37,t38,t39,t40 WHERE a1=a2 AND a2=a3 AND a3=a4 AND a4=a5 AND a5=a6 AND a6=a7 AND a7=a8 AND a8=a9 AND a9=a10 AND a10=a11 AND a11=a12 AND a12=a13 AND a13=a14 AND a14=a15 AND a15=a16 AND a16=a17 AND a17=a18 AND a18=a19 AND a19=a20 AND a20=a21 AND a21=a22 AND a22=a23 AND a23=a24 AND a24=a25 AND a25=a26 AND a26=a27 AND a27=a28 AND a28=a29 AND a29=a30 AND a30=a31 AND a31=a32 AND a32=a33 AND a33=a34 AND a34=a35 AND a35=a36 AND a36=a37 AND a37=a38 AND a38=a39 AND a39=a40 '; +EXECUTE stmt; +connection con2; +SET DEBUG_SYNC= 'now WAIT_FOR in_sync'; +KILL QUERY @id; +connection con1; +ERROR 70100: Query execution was interrupted +connection default; +SET DEBUG_SYNC = 'RESET'; +# +# Bug#19723: kill of active connection yields different error code +# depending on platform. +# +connection con1; +SET DEBUG_SYNC= 'thread_end SIGNAL con1_end'; +KILL @id; +ERROR 70100: Connection was killed +connection con2; +SET DEBUG_SYNC= 'now WAIT_FOR con1_end'; +connection con1; +# ER_SERVER_SHUTDOWN, CR_SERVER_GONE_ERROR, CR_SERVER_LOST, +# depending on the timing of close of the connection socket +SELECT 1; +Got one of the listed errors +SELECT 1; +1 +1 +SELECT @id != CONNECTION_ID(); +@id != CONNECTION_ID() +1 +connection default; +SET DEBUG_SYNC = 'RESET'; +# +# Additional test for WL#3726 "DDL locking for all metadata objects" +# Check that DDL and DML statements waiting for metadata locks can +# be killed. Note that we don't cover all situations here since it +# can be tricky to write test case for some of them (e.g. REPAIR or +# ALTER and other statements under LOCK TABLES). +# +drop tables if exists t1, t2, t3; +create table t1 (i int primary key); +connect blocker, localhost, root, , ; +connect dml, localhost, root, , ; +connect ddl, localhost, root, , ; +# Test for RENAME TABLE +connection blocker; +lock table t1 read; +connection ddl; +rename table t1 to t2; +connection default; +kill query ID; +connection ddl; +ERROR 70100: Query execution was interrupted +# Test for DROP TABLE +drop table t1; +connection default; +kill query ID; +connection ddl; +ERROR 70100: Query execution was interrupted +# Test for CREATE TRIGGER +create trigger t1_bi before insert on t1 for each row set @a:=1; +connection default; +kill query ID; +connection ddl; +ERROR 70100: Query execution was interrupted +# +# Tests for various kinds of ALTER TABLE +# +# Full-blown ALTER which should copy table +alter table t1 add column j int; +connection default; +kill query ID; +connection ddl; +ERROR 70100: Query execution was interrupted +# Two kinds of simple ALTER +alter table t1 rename to t2; +connection default; +kill query ID; +connection ddl; +ERROR 70100: Query execution was interrupted +alter table t1 disable keys; +connection default; +kill query ID; +connection ddl; +ERROR 70100: Query execution was interrupted +# Fast ALTER +alter table t1 alter column i set default 100; +connection default; +kill query ID; +connection ddl; +ERROR 70100: Query execution was interrupted +# Special case which is triggered only for MERGE tables. +connection blocker; +unlock tables; +create table t2 (i int primary key) engine=merge union=(t1); +lock tables t2 read; +connection ddl; +alter table t2 alter column i set default 100; +connection default; +kill query ID; +connection ddl; +ERROR 70100: Query execution was interrupted +# Test for DML waiting for meta-data lock +connection blocker; +unlock tables; +lock tables t1 read; +connection ddl; +truncate table t1; +connection dml; +insert into t1 values (1); +connection default; +kill query ID2; +connection dml; +ERROR 70100: Query execution was interrupted +connection blocker; +unlock tables; +connection ddl; +# Test for DML waiting for tables to be flushed +connection blocker; +lock tables t1 read; +connection ddl; +# Let us mark locked table t1 as old +flush tables; +connection dml; +select * from t1; +connection default; +kill query ID2; +connection dml; +ERROR 70100: Query execution was interrupted +connection blocker; +unlock tables; +connection ddl; +# Cleanup. +connection default; +drop table t1; +drop table t2; +# +# Test kill USER +# +grant ALL on test.* to test@localhost; +grant ALL on test.* to test2@localhost; +connect con3, localhost, test,,; +connect con4, localhost, test2,,; +connection default; +kill hard query user test2@nohost; +affected rows: 0 +kill soft query user test@localhost; +affected rows: 1 +kill hard query user test@localhost; +affected rows: 1 +kill soft connection user test2; +affected rows: 1 +kill hard connection user test@localhost; +affected rows: 1 +revoke all privileges on test.* from test@localhost; +revoke all privileges on test.* from test2@localhost; +drop user test@localhost; +drop user test2@localhost; +connection con3; +select 1; +Got one of the listed errors +connection con4; +select 1; +Got one of the listed errors +connection default; +# +# MDEV-4911 - add KILL query id, and add query id information to +# processlist +# +SELECT SLEEP(1000); +connection con1; +KILL QUERY ID @id; +connection default; +SLEEP(1000) +1 +KILL QUERY ID 0; +ERROR HY000: Unknown query id: 0 +# +# MDEV-5096 - Wrong error message on attempt to kill somebody else's +# query ID +# +CREATE USER u1@localhost; +SELECT SLEEP(1000); +connection con1; +connect con5, localhost, u1,,; +KILL QUERY ID ID; +ERROR HY000: You are not owner of query ID +connection con1; +KILL QUERY ID @id; +connection default; +SLEEP(1000) +1 +disconnect con5; +DROP USER u1@localhost; +SET DEBUG_SYNC = 'RESET'; +DROP FUNCTION MY_KILL; +set global sql_mode=default; |