mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-6720 - enable connection log in mysqltest by default
This commit is contained in:
@ -9,11 +9,18 @@ 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;
|
||||
@ -22,16 +29,23 @@ SELECT 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;
|
||||
@ -40,9 +54,11 @@ SELECT 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
|
||||
@ -52,25 +68,36 @@ INSERT INTO t1 VALUES
|
||||
(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;
|
||||
@ -79,6 +106,7 @@ SELECT 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)
|
||||
@ -89,40 +117,58 @@ 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);
|
||||
@ -134,9 +180,12 @@ 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
|
||||
@ -145,26 +194,34 @@ f1
|
||||
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.
|
||||
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;
|
||||
@ -175,6 +232,7 @@ SELECT 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"
|
||||
@ -185,96 +243,99 @@ SET DEBUG_SYNC = 'RESET';
|
||||
#
|
||||
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
|
||||
# Switching to connection 'blocker'
|
||||
connection blocker;
|
||||
lock table t1 read;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
rename table t1 to t2;
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
kill query ID;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
ERROR 70100: Query execution was interrupted
|
||||
# Test for DROP TABLE
|
||||
drop table t1;
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
kill query ID;
|
||||
# Switching to connection 'ddl'
|
||||
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;
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
kill query ID;
|
||||
# Switching to connection 'ddl'
|
||||
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;
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
kill query ID;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
ERROR 70100: Query execution was interrupted
|
||||
# Two kinds of simple ALTER
|
||||
alter table t1 rename to t2;
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
kill query ID;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
ERROR 70100: Query execution was interrupted
|
||||
alter table t1 disable keys;
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
kill query ID;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
ERROR 70100: Query execution was interrupted
|
||||
# Fast ALTER
|
||||
alter table t1 alter column i set default 100;
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
kill query ID;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
ERROR 70100: Query execution was interrupted
|
||||
# Special case which is triggered only for MERGE tables.
|
||||
# Switching to connection 'blocker'
|
||||
connection blocker;
|
||||
unlock tables;
|
||||
create table t2 (i int primary key) engine=merge union=(t1);
|
||||
lock tables t2 read;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
alter table t2 alter column i set default 100;
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
kill query ID;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
ERROR 70100: Query execution was interrupted
|
||||
# Test for DML waiting for meta-data lock
|
||||
# Switching to connection 'blocker'
|
||||
connection blocker;
|
||||
unlock tables;
|
||||
lock tables t1 read;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
truncate table t1;
|
||||
# Switching to connection 'dml'
|
||||
connection dml;
|
||||
insert into t1 values (1);
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
kill query ID2;
|
||||
# Switching to connection 'dml'
|
||||
connection dml;
|
||||
ERROR 70100: Query execution was interrupted
|
||||
# Switching to connection 'blocker'
|
||||
connection blocker;
|
||||
unlock tables;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
# Test for DML waiting for tables to be flushed
|
||||
# Switching to connection 'blocker'
|
||||
connection blocker;
|
||||
lock tables t1 read;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
# Let us mark locked table t1 as old
|
||||
flush tables;
|
||||
# Switching to connection 'dml'
|
||||
connection dml;
|
||||
select * from t1;
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
kill query ID2;
|
||||
# Switching to connection 'dml'
|
||||
connection dml;
|
||||
ERROR 70100: Query execution was interrupted
|
||||
# Switching to connection 'blocker'
|
||||
connection blocker;
|
||||
unlock tables;
|
||||
# Switching to connection 'ddl'
|
||||
connection ddl;
|
||||
# Cleanup.
|
||||
# Switching to connection 'default'
|
||||
connection default;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
#
|
||||
@ -282,6 +343,9 @@ drop table t2;
|
||||
#
|
||||
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;
|
||||
@ -296,16 +360,21 @@ 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;
|
||||
@ -316,11 +385,16 @@ ERROR HY000: Unknown query id: 0
|
||||
#
|
||||
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;
|
||||
|
Reference in New Issue
Block a user