summaryrefslogtreecommitdiff
path: root/mysql-test/main/kill.result
diff options
context:
space:
mode:
authorMichael Widenius <monty@mariadb.org>2018-03-09 14:05:35 +0200
committerMonty <monty@mariadb.org>2018-03-29 13:59:44 +0300
commita7abddeffa6a760ce948c2dfb007cdf3f1a369d5 (patch)
tree70eb743fa965a17380bbc0ac88ae79ca1075b896 /mysql-test/main/kill.result
parentab1941266c59a19703a74b5593cf3f508a5752d7 (diff)
downloadmariadb-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.result401
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;