diff options
author | Sergey Vojtovich <svoj@mariadb.org> | 2016-03-25 20:51:22 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2016-03-31 10:11:16 +0400 |
commit | 282497dd6d1049b4fb963641504c2733752845a7 (patch) | |
tree | 7288d17c29fbbe9ac47ec51f6988fb954f59a361 /mysql-test/t | |
parent | 5052e2479e873461bebfcedbc674bbaf57d3c968 (diff) | |
download | mariadb-git-282497dd6d1049b4fb963641504c2733752845a7.tar.gz |
MDEV-6720 - enable connection log in mysqltest by default
Diffstat (limited to 'mysql-test/t')
77 files changed, 14 insertions, 1970 deletions
diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test index df4958bd2bc..8f4b3ee2fb7 100644 --- a/mysql-test/t/alter_table.test +++ b/mysql-test/t/alter_table.test @@ -1473,12 +1473,10 @@ INSERT INTO t1 VALUES (1,1), (2,2); START TRANSACTION; INSERT INTO t1 VALUES (3,3); ---echo # Connection con1 connect (con1, localhost, root); --echo # Sending: --send ALTER TABLE t1 DISABLE KEYS ---echo # Connection default connection default; --echo # Waiting until ALTER TABLE is blocked. let $wait_condition= @@ -1489,14 +1487,12 @@ let $wait_condition= UPDATE t1 SET b = 4; COMMIT; ---echo # Connection con1 connection con1; --echo # Reaping: ALTER TABLE t1 DISABLE KEYS --reap disconnect con1; --source include/wait_until_disconnected.inc ---echo # Connection default connection default; DROP TABLE t1; diff --git a/mysql-test/t/alter_user.test b/mysql-test/t/alter_user.test index e32d0c29f2e..ca444f70a70 100644 --- a/mysql-test/t/alter_user.test +++ b/mysql-test/t/alter_user.test @@ -1,6 +1,4 @@ --source include/not_embedded.inc ---enable_connect_log - select * from mysql.user where user = 'root' and host = 'localhost'; --echo # Test syntax @@ -79,4 +77,3 @@ alter user foo with MAX_QUERIES_PER_HOUR 10 MAX_USER_CONNECTIONS 40; select * from mysql.user where user = 'foo'; drop user foo; ---disable_connect_log diff --git a/mysql-test/t/analyze_stmt_privileges.test b/mysql-test/t/analyze_stmt_privileges.test index b565f17c0f7..32ff4ddfb7e 100644 --- a/mysql-test/t/analyze_stmt_privileges.test +++ b/mysql-test/t/analyze_stmt_privileges.test @@ -5,7 +5,6 @@ --echo # MDEV-7025 and MDEV-7027 ANALYZE SELECT/INSERT/UPDATE/DELETE from a --echo # view does not check access permissions on the underlying table --echo # ---enable_connect_log create database db; use db; create table t1 (i int, c varchar(8)); diff --git a/mysql-test/t/analyze_stmt_privileges2.test b/mysql-test/t/analyze_stmt_privileges2.test index 9a0299be535..e3274882ba6 100644 --- a/mysql-test/t/analyze_stmt_privileges2.test +++ b/mysql-test/t/analyze_stmt_privileges2.test @@ -23,7 +23,6 @@ # Save the initial number of concurrent sessions --source include/count_sessions.inc ---enable_connect_log set GLOBAL sql_mode=""; set LOCAL sql_mode=""; diff --git a/mysql-test/t/auth_rpl.test b/mysql-test/t/auth_rpl.test index 0ff024c73e7..9b2c4357cf0 100644 --- a/mysql-test/t/auth_rpl.test +++ b/mysql-test/t/auth_rpl.test @@ -10,13 +10,11 @@ # First stop the slave to guarantee that nothing is replicated. # --connection slave ---echo [connection slave] --source include/stop_slave.inc # # Create an replication account on the master. # --connection master ---echo [connection master] CREATE USER 'plug_user' IDENTIFIED WITH 'test_plugin_server' AS 'plug_user'; GRANT REPLICATION SLAVE ON *.* TO plug_user; FLUSH PRIVILEGES; @@ -25,7 +23,6 @@ FLUSH PRIVILEGES; # Now go to slave and change the replication user. # --connection slave ---echo [connection slave] --let $master_user= query_get_value(SHOW SLAVE STATUS, Master_User, 1) CHANGE MASTER TO MASTER_USER= 'plug_user', diff --git a/mysql-test/t/bug39022.test b/mysql-test/t/bug39022.test index 6056dbf0e7b..8d1deb163d7 100644 --- a/mysql-test/t/bug39022.test +++ b/mysql-test/t/bug39022.test @@ -18,20 +18,16 @@ connect (thread1, localhost, root,,); connect (thread2, localhost, root,,); connection thread1; ---echo # in thread1 START TRANSACTION; connection thread2; ---echo # in thread2 REPLACE INTO t2 VALUES (-17); SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d) LOCK IN SHARE MODE; connection thread1; ---echo # in thread1 REPLACE INTO t1(a,b) VALUES (67,20); connection thread2; ---echo # in thread2 COMMIT; START TRANSACTION; REPLACE INTO t1(a,b) VALUES (65,-50); @@ -40,21 +36,18 @@ send; SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d) LOCK IN SHARE MODE; #waits connection thread1; ---echo # in thread1 --echo # should not crash --error ER_LOCK_DEADLOCK SELECT d FROM t2,t1 WHERE d=(SELECT MAX(a) FROM t1 WHERE t1.a > t2.d) LOCK IN SHARE MODE; #crashes connection thread2; ---echo # in thread2 REAP; disconnect thread2; --source include/wait_until_disconnected.inc connection thread1; ---echo # in thread1; disconnect thread1; --source include/wait_until_disconnected.inc diff --git a/mysql-test/t/check.test b/mysql-test/t/check.test index 966d41adfbd..6a7b7253a59 100644 --- a/mysql-test/t/check.test +++ b/mysql-test/t/check.test @@ -67,12 +67,10 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1(a INT); LOCK TABLE t1 WRITE; ---echo # Connection con1 connect(con1, localhost, root); SET lock_wait_timeout= 1; CHECK TABLE t1; ---echo # Connection default connection default; UNLOCK TABLES; DROP TABLE t1; diff --git a/mysql-test/t/commit.test b/mysql-test/t/commit.test index c2051358073..762397dfa23 100644 --- a/mysql-test/t/commit.test +++ b/mysql-test/t/commit.test @@ -15,7 +15,6 @@ connect (con1,localhost,root,,); # provided # init ---echo connection default; connection default; SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; @@ -63,13 +62,11 @@ START TRANSACTION; SELECT * FROM t1; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; ---echo connection con1 connection con1; START TRANSACTION; INSERT INTO t1 VALUES (1000); COMMIT; ---echo connection default connection default; --echo We should not be able to read the '1000' SELECT * FROM t1; @@ -99,29 +96,24 @@ SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; # transaction will have the same tran. iso. level # as the first. # ---echo connection default connection default; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; START TRANSACTION; ---echo connection con1 connection con1; START TRANSACTION; INSERT INTO t1 VALUES (1001); COMMIT; ---echo connection default connection default; SELECT COUNT(*) FROM t1 WHERE s1 = 1001; --echo Should be 1 COMMIT AND CHAIN; ---echo connection con1 connection con1; INSERT INTO t1 VALUES (1002); COMMIT; ---echo connection default connection default; SELECT COUNT(*) FROM t1 WHERE s1 = 1002; --echo Should be 1 @@ -133,29 +125,24 @@ COMMIT; # # Verify isolation level with ROLLBACK AND CHAIN # ---echo connection default connection default; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; START TRANSACTION; ---echo connection con1 connection con1; START TRANSACTION; INSERT INTO t1 VALUES (1001); COMMIT; ---echo connection default connection default; SELECT COUNT(*) FROM t1 WHERE s1 = 1001; --echo Should be 1 ROLLBACK AND CHAIN; ---echo connection con1 connection con1; INSERT INTO t1 VALUES (1002); COMMIT; ---echo connection default connection default; SELECT COUNT(*) FROM t1 WHERE s1 = 1002; --echo Should be 1 @@ -176,40 +163,33 @@ COMMIT; # SET @@completion_type=1; ---echo connection default connection default; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; START TRANSACTION; ---echo connection con1 connection con1; START TRANSACTION; INSERT INTO t1 VALUES (1001); COMMIT; ---echo connection default connection default; SELECT * FROM t1 WHERE s1 >= 1000; --echo Should see 1001 COMMIT AND NO CHAIN; --echo default transaction is now in REPEATABLE READ ---echo connection con1 connection con1; INSERT INTO t1 VALUES (1002); COMMIT; ---echo connection default connection default; SELECT * FROM t1 WHERE s1 >= 1000; --echo Should see 1001 and 1002 ---echo connection con1 connection con1; INSERT INTO t1 VALUES (1003); COMMIT; ---echo connection default connection default; SELECT * FROM t1 WHERE s1 >= 1000; --echo Should see 1001 and 1002, but NOT 1003 @@ -225,42 +205,35 @@ COMMIT; # Verify that ROLLBACK AND NO CHAIN overrides the value # of @@completion_type # ---echo connection default connection default; SET @@completion_type=1; COMMIT AND NO CHAIN; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; START TRANSACTION; ---echo connection con1 connection con1; START TRANSACTION; INSERT INTO t1 VALUES (1001); COMMIT; ---echo connection default connection default; SELECT * FROM t1 WHERE s1 >= 1000; --echo Should see 1001 ROLLBACK AND NO CHAIN; --echo default transaction is now in REPEATABLE READ ---echo connection con1 connection con1; INSERT INTO t1 VALUES (1002); COMMIT; ---echo connection default connection default; SELECT * FROM t1 WHERE s1 >= 1000; --echo Should see 1001 and 1002 ---echo connection con1 connection con1; INSERT INTO t1 VALUES (1003); COMMIT; ---echo connection default connection default; SELECT * FROM t1 WHERE s1 >= 1000; --echo Should see 1001 and 1002, but NOT 1003 @@ -281,7 +254,6 @@ COMMIT; # SET TRANSACTION. (Note that this is _not_ # in accordance with ISO 9075.) # ---echo connection default connection default; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; @@ -289,12 +261,10 @@ SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; START TRANSACTION; SELECT * FROM t1; ---echo connection con1 connection con1; INSERT INTO t1 VALUES (1000); COMMIT; ---echo connection default connection default; SELECT * FROM t1; --echo Should get same result as above (i.e should not read '1000') @@ -320,12 +290,10 @@ INSERT INTO t1 VALUES (1000); SELECT * FROM t1; --echo Should read '1000' ---echo connection con1 connection con1; INSERT INTO t1 VALUES (1001); COMMIT; ---echo connection default connection default; SELECT * FROM t1; --echo Should only read the '1000' as this transaction is now in REP READ diff --git a/mysql-test/t/consistent_snapshot.test b/mysql-test/t/consistent_snapshot.test index fb1f3bc007c..a481e757bed 100644 --- a/mysql-test/t/consistent_snapshot.test +++ b/mysql-test/t/consistent_snapshot.test @@ -7,25 +7,20 @@ DROP TABLE IF EXISTS t1; --enable_warnings ---echo # Establish connection con1 (user=root) connect (con1,localhost,root,,); ---echo # Establish connection con2 (user=root) connect (con2,localhost,root,,); --echo ### Test 1: --echo ### - While a consistent snapshot transaction is executed, --echo ### no external inserts should be visible to the transaction. ---echo # Switch to connection con1 connection con1; CREATE TABLE t1 (a INT) ENGINE=innodb; START TRANSACTION WITH CONSISTENT SNAPSHOT; ---echo # Switch to connection con2 connection con2; INSERT INTO t1 VALUES(1); ---echo # Switch to connection con1 connection con1; SELECT * FROM t1; # if consistent snapshot was set as expected, we # should see nothing. @@ -38,11 +33,9 @@ COMMIT; DELETE FROM t1; START TRANSACTION; # Now we omit WITH CONSISTENT SNAPSHOT ---echo # Switch to connection con2 connection con2; INSERT INTO t1 VALUES(1); ---echo # Switch to connection con1 connection con1; SELECT * FROM t1; # if consistent snapshot was not set, as expected, we # should see 1. @@ -56,17 +49,14 @@ START TRANSACTION WITH CONSISTENT SNAPSHOT; DELETE FROM t1; COMMIT WORK AND CHAIN; ---echo # Switch to connection con2 connection con2; INSERT INTO t1 VALUES(1); ---echo # Switch to connection con1 connection con1; SELECT * FROM t1; # if consistent snapshot was not set, as expected, we # should see 1. COMMIT; ---echo # Switch to connection default + close connections con1 and con2 connection default; disconnect con1; disconnect con2; diff --git a/mysql-test/t/ctype_errors.test b/mysql-test/t/ctype_errors.test index 681223dae64..b228a3b9f19 100644 --- a/mysql-test/t/ctype_errors.test +++ b/mysql-test/t/ctype_errors.test @@ -50,13 +50,11 @@ connection default; --echo # connect (con1,localhost,root,,test); ---echo # Connection con1 SET lc_messages=ru_RU; SET NAMES latin1; --error ER_PARSE_ERROR --query SELECT '01234567890123456789012345678901234\' disconnect con1; ---echo # Connection default connection default; --echo End of 5.5 tests diff --git a/mysql-test/t/ddl_i18n_koi8r.test b/mysql-test/t/ddl_i18n_koi8r.test index 0a62a8ba0f8..5e2417fab4d 100644 --- a/mysql-test/t/ddl_i18n_koi8r.test +++ b/mysql-test/t/ddl_i18n_koi8r.test @@ -116,8 +116,6 @@ ALTER DATABASE mysqltest1 COLLATE cp866_general_ci| # - Change connection to flush cache; --connect (con2,localhost,root,,) ---echo ---echo ---> connection: con2 # - Switch environment variables and trigger loading views; @@ -178,8 +176,6 @@ DROP DATABASE mysqltest1| # - Change connection to flush cache; --connect (con3,localhost,root,,) ---echo ---echo ---> connection: con3 # - Switch environment variables and trigger loading views; @@ -208,9 +204,6 @@ set names koi8r| # --connection default ---echo ---echo ---> connection: default - --disconnect con2 --disconnect con3 @@ -378,8 +371,6 @@ ALTER DATABASE mysqltest2 COLLATE cp866_general_ci| # - Change connection to flush SP-cache; --connect (con2,localhost,root,,mysqltest1) ---echo ---echo ---> connection: con2 # - Switch environment variables and trigger loading stored procedures; @@ -458,8 +449,6 @@ DROP DATABASE mysqltest2| # - Change connection to flush SP-cache; --connect (con3,localhost,root,,mysqltest1) ---echo ---echo ---> connection: con3 # - Switch environment variables and trigger loading stored procedures; @@ -485,9 +474,6 @@ set names koi8r| # --connection default ---echo ---echo ---> connection: default - --disconnect con2 --disconnect con3 @@ -654,8 +640,6 @@ ALTER TABLE mysqltest2.t1 DROP COLUMN fake| # (connect using NULL database); --connect (con2,localhost,root,,) ---echo ---echo ---> connection: con2 SET @@character_set_client= cp1251| SET @@character_set_results= cp1251| @@ -744,8 +728,6 @@ ALTER TABLE mysqltest2.t1 DROP COLUMN fake| # (connect using NULL database); --connect (con3,localhost,root,,) ---echo ---echo ---> connection: con3 SET @@character_set_client= cp1251| SET @@character_set_results= cp1251| @@ -772,9 +754,6 @@ use mysqltest1| # --connection default ---echo ---echo ---> connection: default - --disconnect con2 --disconnect con3 @@ -914,8 +893,6 @@ ALTER DATABASE mysqltest2 COLLATE cp866_general_ci| # - Change connection to flush cache; --connect (con2,localhost,root,,mysqltest1) ---echo ---echo ---> connection: con2 # - Switch environment variables and trigger loading stored procedures; @@ -996,8 +973,6 @@ DROP DATABASE mysqltest2| # - Change connection to flush cache; --connect (con3,localhost,root,,mysqltest1) ---echo ---echo ---> connection: con3 # - Switch environment variables and trigger loading stored procedures; @@ -1135,19 +1110,12 @@ SHOW CREATE TABLE mysqltest2.t2| delimiter ;| --connection con2 ---echo ---echo ---> connection: con2 --disconnect con2 --source include/wait_until_disconnected.inc --connection con3 ---echo ---echo ---> connection: con3 --disconnect con3 --source include/wait_until_disconnected.inc --connection default ---echo ---echo ---> connection: default USE test; DROP DATABASE mysqltest1; DROP DATABASE mysqltest2; - diff --git a/mysql-test/t/ddl_i18n_utf8.test b/mysql-test/t/ddl_i18n_utf8.test index 023047b952e..9fecad87515 100644 --- a/mysql-test/t/ddl_i18n_utf8.test +++ b/mysql-test/t/ddl_i18n_utf8.test @@ -116,8 +116,6 @@ ALTER DATABASE mysqltest1 COLLATE cp866_general_ci| # - Change connection to flush cache; --connect (con2,localhost,root,,) ---echo ---echo ---> connection: con2 # - Switch environment variables and trigger loading views; @@ -178,8 +176,6 @@ DROP DATABASE mysqltest1| # - Change connection to flush cache; --connect (con3,localhost,root,,) ---echo ---echo ---> connection: con3 # - Switch environment variables and trigger loading views; @@ -208,8 +204,6 @@ set names utf8| # --connection default ---echo ---echo ---> connection: default --disconnect con2 --disconnect con3 @@ -378,8 +372,6 @@ ALTER DATABASE mysqltest2 COLLATE cp866_general_ci| # - Change connection to flush SP-cache; --connect (con2,localhost,root,,mysqltest1) ---echo ---echo ---> connection: con2 # - Switch environment variables and trigger loading stored procedures; @@ -458,8 +450,6 @@ DROP DATABASE mysqltest2| # - Change connection to flush SP-cache; --connect (con3,localhost,root,,mysqltest1) ---echo ---echo ---> connection: con3 # - Switch environment variables and trigger loading stored procedures; @@ -485,8 +475,6 @@ set names utf8| # --connection default ---echo ---echo ---> connection: default --disconnect con2 --disconnect con3 @@ -654,8 +642,6 @@ ALTER TABLE mysqltest2.t1 DROP COLUMN fake| # (connect using NULL database); --connect (con2,localhost,root,,) ---echo ---echo ---> connection: con2 SET @@character_set_client= cp1251| SET @@character_set_results= cp1251| @@ -744,8 +730,6 @@ ALTER TABLE mysqltest2.t1 DROP COLUMN fake| # (connect using NULL database); --connect (con3,localhost,root,,) ---echo ---echo ---> connection: con3 SET @@character_set_client= cp1251| SET @@character_set_results= cp1251| @@ -772,8 +756,6 @@ use mysqltest1| # --connection default ---echo ---echo ---> connection: default --disconnect con2 --disconnect con3 @@ -914,8 +896,6 @@ ALTER DATABASE mysqltest2 COLLATE cp866_general_ci| # - Change connection to flush cache; --connect (con2,localhost,root,,mysqltest1) ---echo ---echo ---> connection: con2 # - Switch environment variables and trigger loading stored procedures; @@ -996,8 +976,6 @@ DROP DATABASE mysqltest2| # - Change connection to flush cache; --connect (con3,localhost,root,,mysqltest1) ---echo ---echo ---> connection: con3 # - Switch environment variables and trigger loading stored procedures; @@ -1135,19 +1113,12 @@ SHOW CREATE TABLE mysqltest2.t2| delimiter ;| --connection con2 ---echo ---echo ---> connection: con2 --disconnect con2 --source include/wait_until_disconnected.inc --connection con3 ---echo ---echo ---> connection: con3 --disconnect con3 --source include/wait_until_disconnected.inc --connection default ---echo ---echo ---> connection: default USE test; DROP DATABASE mysqltest1; DROP DATABASE mysqltest2; - diff --git a/mysql-test/t/debug_sync.test b/mysql-test/t/debug_sync.test index ebeeec61632..aead6f3ac2e 100644 --- a/mysql-test/t/debug_sync.test +++ b/mysql-test/t/debug_sync.test @@ -330,23 +330,19 @@ SHOW VARIABLES LIKE 'DEBUG_SYNC'; # CREATE USER mysqltest_1@localhost; GRANT SUPER ON *.* TO mysqltest_1@localhost; ---echo connection con1, mysqltest_1 connect (con1,localhost,mysqltest_1,,); SET DEBUG_SYNC= 'RESET'; disconnect con1; ---echo connection default connection default; DROP USER mysqltest_1@localhost; # CREATE USER mysqltest_2@localhost; GRANT ALL ON *.* TO mysqltest_2@localhost; REVOKE SUPER ON *.* FROM mysqltest_2@localhost; ---echo connection con1, mysqltest_2 connect (con1,localhost,mysqltest_2,,); --error ER_SPECIFIC_ACCESS_DENIED_ERROR SET DEBUG_SYNC= 'RESET'; disconnect con1; ---echo connection default connection default; DROP USER mysqltest_2@localhost; @@ -361,21 +357,17 @@ DROP TABLE IF EXISTS t1; # # Test. CREATE TABLE t1 (c1 INT); - --echo connection con1 connect (con1,localhost,root,,); SET DEBUG_SYNC= 'before_lock_tables_takes_lock SIGNAL opened WAIT_FOR flushed'; send INSERT INTO t1 VALUES(1); ---echo connection default connection default; SET DEBUG_SYNC= 'now WAIT_FOR opened'; SET DEBUG_SYNC= 'after_flush_unlock SIGNAL flushed'; FLUSH TABLE t1; - --echo connection con1 connection con1; reap; disconnect con1; ---echo connection default connection default; DROP TABLE t1; @@ -391,23 +383,19 @@ DROP TABLE IF EXISTS t1; # Test. CREATE TABLE t1 (c1 INT); LOCK TABLE t1 READ; - --echo connection con1 connect (con1,localhost,root,,); # Retain action after use. First used by general_log. SET DEBUG_SYNC= 'wait_for_lock SIGNAL locked EXECUTE 2'; send INSERT INTO t1 VALUES (1); ---echo connection default connection default; # Wait until INSERT waits for lock. SET DEBUG_SYNC= 'now WAIT_FOR locked'; # let INSERT continue. UNLOCK TABLES; - --echo connection con1 connection con1; --echo retrieve INSERT result. reap; disconnect con1; ---echo connection default connection default; DROP TABLE t1; diff --git a/mysql-test/t/delayed.test b/mysql-test/t/delayed.test index 2886dff8f91..85f28de128b 100644 --- a/mysql-test/t/delayed.test +++ b/mysql-test/t/delayed.test @@ -315,7 +315,6 @@ insert into t1 values (1,1); lock table t1 read; connect (update,localhost,root,,); connection update; ---echo connection: update --send insert delayed into t1 values (2,2); connection default; let $wait_condition= @@ -323,10 +322,8 @@ let $wait_condition= where command = "Delayed insert" and state = "Waiting for table level lock"; --source include/wait_condition.inc connect (select,localhost,root,,); ---echo connection: select select * from t1; connection default; ---echo connection: default select * from t1; connection default; disconnect update; @@ -421,17 +418,14 @@ CREATE TABLE t3 (a INT); --echo # Test 1: Using LOCK TABLE ---echo # Connection con1 connect (con1, localhost, root); LOCK TABLE t1 WRITE; ---echo # Connection default connection default; LOCK TABLE t2 WRITE; --echo # Sending: --send INSERT DELAYED INTO t1 VALUES (1) ---echo # Connection con1 connection con1; --echo # Wait until INSERT DELAYED is blocked on table 't1'. let $wait_condition= @@ -443,7 +437,6 @@ let $wait_condition= INSERT DELAYED INTO t2 VALUES (1); UNLOCK TABLES; ---echo # Connection default connection default; --echo # Reaping: INSERT DELAYED INTO t1 VALUES (1) --reap @@ -454,12 +447,10 @@ UNLOCK TABLES; START TRANSACTION; SELECT * FROM t1 WHERE a=0; ---echo # Connection con1 connection con1; --echo # Sending: --send ALTER TABLE t1 MODIFY a INT UNSIGNED; ---echo # Connection default connection default; --echo # Wait until ALTER TABLE is blocked on table 't1'. let $wait_condition= @@ -471,24 +462,20 @@ let $wait_condition= INSERT DELAYED INTO t1 VALUES (3); COMMIT; ---echo # Connection con1 connection con1; --echo # Reaping: ALTER TABLE t1 COMMENT 'test' --reap --echo # Test 3: Using RENAME TABLE ---echo # Connection default connection default; START TRANSACTION; INSERT INTO t2 VALUES (1); ---echo # Connection con1 connection con1; --echo # Sending: --send RENAME TABLE t1 to t5, t2 to t4 ---echo # Connection default connection default; --echo # Wait until RENAME TABLE is blocked on table 't1'. let $wait_condition= @@ -500,12 +487,10 @@ let $wait_condition= INSERT DELAYED INTO t1 VALUES (4); COMMIT; ---echo # Connection con1 connection con1; --echo # Reaping: RENAME TABLE t1 to t5, t2 to t4 --reap ---echo # Connection default connection default; --echo # Reverting the renames RENAME TABLE t5 to t1, t4 to t2; @@ -515,11 +500,9 @@ RENAME TABLE t5 to t1, t4 to t2; START TRANSACTION; INSERT INTO t2 VALUES (1); ---echo # Connection con2 connect (con2, localhost, root); --send LOCK TABLE t1 WRITE, t2 WRITE ---echo # Connection con1 connection con1; --echo # Wait until LOCK TABLE is blocked on table 't2'. let $wait_condition= @@ -529,7 +512,6 @@ let $wait_condition= --source include/wait_condition.inc --send INSERT DELAYED INTO t1 VALUES (5) ---echo # Connection default connection default; --echo # Wait until INSERT DELAYED is blocked on table 't1'. let $wait_condition= @@ -541,18 +523,15 @@ let $wait_condition= INSERT DELAYED INTO t1 VALUES (6); COMMIT; ---echo # Connection con2 connection con2; --echo # Reaping: LOCK TABLE t1 WRITE, t2 WRITE --reap UNLOCK TABLES; ---echo # Connection con1 connection con1; --echo # Reaping: INSERT DELAYED INTO t1 VALUES (5) --reap ---echo # Connection default connection default; --echo # Test 5: LOCK TABLES + INSERT DELAYED in one connection. @@ -567,16 +546,13 @@ INSERT DELAYED INTO t2 VALUES (8); UNLOCK TABLES; SET AUTOCOMMIT= 1; ---echo # Connection con2 connection con2; disconnect con2; --source include/wait_until_disconnected.inc ---echo # Connection con1 connection con1; disconnect con1; --source include/wait_until_disconnected.inc ---echo # Connection default connection default; DROP TABLE t1, t2, t3; --enable_ps_protocol @@ -596,12 +572,10 @@ create table tm(a int) engine=merge union=(t1, t2); begin; select * from t1; ---echo # Connection 'con1'. connection con1; --echo # Sending: --send alter table t1 comment 'test' ---echo # Connection 'default'. connection default; --echo # Wait until ALTER TABLE blocks and starts waiting --echo # for connection 'default'. It should wait with a @@ -619,13 +593,11 @@ insert delayed into tm values (1); --echo # Unblock ALTER TABLE. commit; ---echo # Connection 'con1'. connection con1; --echo # Reaping ALTER TABLE: --reap disconnect con1; --source include/wait_until_disconnected.inc ---echo # Connection 'default'. connection default; drop tables tm, t1, t2; diff --git a/mysql-test/t/events_bugs.test b/mysql-test/t/events_bugs.test index cace397e92a..76288c8fbae 100644 --- a/mysql-test/t/events_bugs.test +++ b/mysql-test/t/events_bugs.test @@ -919,7 +919,6 @@ GRANT create, insert, select, event ON events_test.* TO evtest1@localhost; GRANT select,insert ON test.* TO evtest1@localhost; SHOW GRANTS FOR evtest1@localhost; ---echo connection e1; --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK connect (e1,localhost,evtest1,ev1,events_test,$MASTER_MYPORT,$MASTER_MYSOCK); DELIMITER |; @@ -951,7 +950,6 @@ SELECT COUNT(*) > 0 FROM events_test.event_log; --source include/wait_condition.inc SELECT COUNT(*) > 0 AS "Expect 1" FROM events_test.event_log; # ---echo connection default; connection default; DROP USER evtest1@localhost; # 2. If we meet BUG#28924 again than a server crash happens within the next @@ -1025,10 +1023,6 @@ SET GLOBAL READ_ONLY = 1; --echo ---echo # ---echo # Connection: u1_con (mysqltest_u1@localhost/events_test). ---echo # - --connect(u1_con,localhost,mysqltest_u1,,events_test) --echo @@ -1050,10 +1044,6 @@ DROP EVENT e1; # Check that the super user still can create/update/drop events. ---echo # ---echo # Connection: root_con (root@localhost/events_test). ---echo # - --connect(root_con,localhost,root,,events_test) --echo @@ -1079,10 +1069,6 @@ SET GLOBAL READ_ONLY = 0; --echo ---echo # ---echo # Connection: u1_con (mysqltest_u1@localhost/test). ---echo # - --connection u1_con --echo @@ -1101,10 +1087,6 @@ WHERE event_schema = 'events_test'; --echo ---echo # ---echo # Connection: root_con (root@localhost/events_test). ---echo # - --connection root_con --echo @@ -1170,10 +1152,6 @@ SET GLOBAL READ_ONLY = 0; --echo ---echo # ---echo # Connection: default ---echo # - --disconnect u1_con --disconnect root_con --connection default diff --git a/mysql-test/t/filesort_debug.test b/mysql-test/t/filesort_debug.test index c375334ad29..86795298f07 100644 --- a/mysql-test/t/filesort_debug.test +++ b/mysql-test/t/filesort_debug.test @@ -32,7 +32,6 @@ DROP FUNCTION f1; connect (con1, localhost, root); connect (con2, localhost, root); ---echo # connection 1 connection con1; CREATE TABLE t1(f0 int auto_increment primary key, f1 int); INSERT INTO t1(f1) VALUES (0),(1),(2),(3),(4),(5); @@ -43,14 +42,12 @@ SET DEBUG_SYNC='filesort_start SIGNAL filesort_started WAIT_FOR filesort_killed' --echo # Sending: (not reaped since connection is killed later) --send SELECT * FROM t1 ORDER BY f1 ASC, f0 ---echo # connection 2 connection con2; let $ignore= `SELECT @id := $ID`; SET DEBUG_SYNC='now WAIT_FOR filesort_started'; KILL @id; SET DEBUG_SYNC='now SIGNAL filesort_killed'; ---echo # connection default connection default; disconnect con1; disconnect con2; diff --git a/mysql-test/t/flush-innodb-notembedded.test b/mysql-test/t/flush-innodb-notembedded.test index 15bfeb53475..1f73ba50fc4 100644 --- a/mysql-test/t/flush-innodb-notembedded.test +++ b/mysql-test/t/flush-innodb-notembedded.test @@ -14,54 +14,44 @@ GRANT RELOAD, SELECT ON *.* TO user3@localhost; GRANT SELECT, LOCK TABLES ON *.* TO user4@localhost; GRANT RELOAD, LOCK TABLES ON *.* TO user5@localhost; ---echo # Connection con1 as user1 --connect(con1, localhost, user1) FLUSH TABLE db1.t1 FOR EXPORT; UNLOCK TABLES; --disconnect con1 --source include/wait_until_disconnected.inc ---echo # Connection default --connection default ---echo # Connection con1 as user2 --connect(con1, localhost, user2) --error ER_SPECIFIC_ACCESS_DENIED_ERROR FLUSH TABLE db1.t1 FOR EXPORT; --disconnect con1 --source include/wait_until_disconnected.inc ---echo # Connection default --connection default ---echo # Connection con1 as user3 --connect(con1, localhost, user3) --error ER_DBACCESS_DENIED_ERROR FLUSH TABLE db1.t1 FOR EXPORT; --disconnect con1 --source include/wait_until_disconnected.inc ---echo # Connection default --connection default ---echo # Connection con1 as user4 --connect(con1, localhost, user4) --error ER_SPECIFIC_ACCESS_DENIED_ERROR FLUSH TABLE db1.t1 FOR EXPORT; --disconnect con1 --source include/wait_until_disconnected.inc ---echo # Connection default --connection default ---echo # Connection con1 as user5 --connect(con1, localhost, user5) --error ER_TABLEACCESS_DENIED_ERROR FLUSH TABLE db1.t1 FOR EXPORT; --disconnect con1 --source include/wait_until_disconnected.inc ---echo # Connection default --connection default DROP USER user1@localhost, user2@localhost, user3@localhost, user4@localhost, user5@localhost; diff --git a/mysql-test/t/flush-innodb.test b/mysql-test/t/flush-innodb.test index acf9493693a..bf7b79bb5a3 100644 --- a/mysql-test/t/flush-innodb.test +++ b/mysql-test/t/flush-innodb.test @@ -109,18 +109,15 @@ DROP VIEW v1; CREATE TABLE t1 (a INT PRIMARY KEY, b INT) engine= InnoDB; CREATE TABLE t2 (a INT) engine= InnoDB; ---echo # Connection con1 --connect (con1, localhost, root) START TRANSACTION; INSERT INTO t1 VALUES (1, 1); ---echo # Connection default --connection default --echo # Should be blocked --echo # Sending: --send FLUSH TABLES t1 FOR EXPORT ---echo # Connection con1 --connection con1 let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -129,12 +126,10 @@ let $wait_condition= --source include/wait_condition.inc COMMIT; ---echo # Connection default --connection default --echo # Reaping: FLUSH TABLES t1 FOR EXPORT --reap ---echo # Connection con1 --connection con1 --echo # Should not be blocked INSERT INTO t2 VALUES (1); @@ -142,7 +137,6 @@ INSERT INTO t2 VALUES (1); --echo # Sending: --send INSERT INTO t1 VALUES (2, 2) ---echo # Connection default --connection default let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -151,7 +145,6 @@ let $wait_condition= --source include/wait_condition.inc UNLOCK TABLES; ---echo # Connection con1 --connection con1 --echo # Reaping: INSERT INTO t1 VALUES (2, 2); --reap @@ -162,18 +155,15 @@ UNLOCK TABLES; START TRANSACTION; SELECT * FROM t1; ---echo # Connection default --connection default --echo # Should not be blocked FLUSH TABLES t1 FOR EXPORT; ---echo # Connection con1 --connection con1 COMMIT; --echo # Should not be blocked SELECT * FROM t1; ---echo # Connection default --connection default UNLOCK TABLES; @@ -183,12 +173,10 @@ UNLOCK TABLES; START TRANSACTION; SELECT * FROM t1; ---echo # Connection con2 --connect (con2, localhost, root) --echo # Sending: --send ALTER TABLE t1 ADD INDEX i1(b) ---echo # Connection con1 --connection con1 let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -198,7 +186,6 @@ let $wait_condition= --echo # Should be blocked --send FLUSH TABLE t1 FOR EXPORT ---echo # Connection default --connection default let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -207,27 +194,22 @@ let $wait_condition= --source include/wait_condition.inc COMMIT; ---echo # Connection con2 --connection con2 --echo # Reaping ALTER TABLE ... --reap ---echo # Connection con1 --connection con1 --echo # Reaping FLUSH TABLE t1 FOR EXPORT --reap UNLOCK TABLES; ---echo # Connection default --connection default FLUSH TABLE t1 FOR EXPORT; ---echo # Connection con2 --connection con2 --echo # Should be blocked --send DROP TABLE t1 ---echo # Connection default --connection default let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -236,14 +218,12 @@ let $wait_condition= --source include/wait_condition.inc UNLOCK TABLES; ---echo # Connection con2 --connection con2 --echo # Reaping DROP TABLE t1 --reap --disconnect con2 --source include/wait_until_disconnected.inc ---echo # Connection default --connection default DROP TABLE t2; @@ -253,13 +233,11 @@ DROP TABLE t2; CREATE TABLE t1(a INT) engine= InnoDB; FLUSH TABLES WITH READ LOCK; ---echo # Connection con1 --connection con1 --echo # This should not block FLUSH TABLE t1 FOR EXPORT; UNLOCK TABLES; ---echo # Connection default --connection default UNLOCK TABLES; DROP TABLE t1; @@ -272,12 +250,10 @@ CREATE TABLE t1(a INT) engine= MEMORY; FLUSH TABLE t1 FOR EXPORT; DROP TABLE t1; ---echo # Connection con1 --connection con1 --disconnect con1 --source include/wait_until_disconnected.inc ---echo # Connection defalt --connection default --echo # Test 7: Check privileges required. @@ -291,11 +267,9 @@ DROP TABLE t1; CREATE TABLE t1 (a INT) engine= InnoDB; CREATE TABLE t2 (a INT) engine= InnoDB; ---echo # Connection con1 --connect (con1, localhost, root) FLUSH TABLE t1 FOR EXPORT; ---echo # Connection default --connection default --echo # This should not block FLUSH TABLE t2 FOR EXPORT; @@ -304,7 +278,6 @@ UNLOCK TABLES; --echo # Sending: --send FLUSH TABLE t1 FOR EXPORT ---echo # Connection con1 --connection con1 let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -313,7 +286,6 @@ let $wait_condition= --source include/wait_condition.inc UNLOCK TABLES; ---echo # Connection default --connection default --echo # Reaping: FLUSH TABLE t1 FOR EXPORT --reap @@ -324,33 +296,27 @@ UNLOCK TABLES; LOCK TABLE t1 READ; ---echo # Connection con1 --connection con1 --echo # Should not block FLUSH TABLE t1 FOR EXPORT; UNLOCK TABLES; ---echo # Connection default --connection default UNLOCK TABLES; FLUSH TABLE t1 FOR EXPORT; ---echo # Connection con1 --connection con1 --echo # Should not block LOCK TABLE t1 READ; UNLOCK TABLES; ---echo # Connection default --connection default UNLOCK TABLES; ---echo # Connection con1 --connection con1 --disconnect con1 --source include/wait_until_disconnected.inc ---echo # Connection default --connection default DROP TABLE t1, t2; @@ -372,21 +338,17 @@ DROP TABLE t1; --echo # Test 11: Test 'flush table with fully qualified table names --echo # and with syntax local/NO_WRITE_TO_BINLOG ---echo # Connection con1 --connect (con1, localhost, root) ---echo # Connection default --connection default CREATE TABLE t1 ( i INT ) ENGINE = Innodb; INSERT INTO t1 VALUES (100),(200); FLUSH LOCAL TABLES test.t1 FOR EXPORT; ---echo # Connection con1 --connection con1 --echo # Should be blocked --echo # Sending: --send FLUSH LOCAL TABLES t1 FOR EXPORT ---echo # Connection default --connection default let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -395,19 +357,16 @@ let $wait_condition= --source include/wait_condition.inc UNLOCK TABLE; ---echo # Connection con1 --connection con1 --echo # Reaping: FLUSH LOCAL TABLES t1 FOR EXPORT --reap SELECT * FROM t1 ORDER BY i; ---echo # Connection default --connection default --echo # Should be blocked --echo # Sending: --send FLUSH NO_WRITE_TO_BINLOG TABLES test.t1 FOR EXPORT ---echo # Connection con1 --connection con1 let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -416,7 +375,6 @@ let $wait_condition= --source include/wait_condition.inc UNLOCK TABLES; ---echo # Connection default --connection default --echo # Reaping: FLUSH NO_WRITE_TO_BINLOG TABLES test.t1 FOR EXPORT --reap @@ -427,7 +385,6 @@ DROP TABLE t1; --echo # Test 12: Active transaction get committed if user execute --echo # "FLUSH TABLE ... FOR EXPORT" or "LOCK TABLE.." ---echo # Connection default --connection default CREATE TABLE t1 ( i INT ) ENGINE = Innodb; INSERT INTO t1 VALUES (100),(200); @@ -448,7 +405,6 @@ DROP TABLE t1; --echo # Test 13: Verify "FLUSH TABLE ... FOR EXPORT" and "LOCK TABLE.." --echo # in same session ---echo # Connection default --connection default CREATE TABLE t1 ( i INT ) ENGINE = Innodb; diff --git a/mysql-test/t/flush.test b/mysql-test/t/flush.test index a1df9359d30..81834b7de10 100644 --- a/mysql-test/t/flush.test +++ b/mysql-test/t/flush.test @@ -303,19 +303,16 @@ insert into t3 (a) values (2); --echo # III. Concurrent tests. --echo # connect (con1,localhost,root,,); ---echo # --> connection default --echo # --echo # Check that flush tables <list> with read lock --echo # does not affect non-locked tables. connection default; --echo # flush tables t1 with read lock; ---echo # --> connection con1; connection con1; select * from t1; select * from t2; insert into t2 (a) values (3); ---echo # --> connection default; connection default; unlock tables; --echo # @@ -324,12 +321,10 @@ unlock tables; --echo # Vice versa it is not true, since tables read-locked by --echo # "FLUSH TABLES <list> WITH READ LOCK" can't be flushed. flush tables with read lock; ---echo # --> connection con1; connection con1; flush table t1 with read lock; select * from t1; unlock tables; ---echo # --> connection default; connection default; unlock tables; --echo # @@ -338,11 +333,9 @@ unlock tables; --echo # WITH READ LOCK. --echo # flush table t1 with read lock; ---echo # --> connection con1 connection con1; flush table t2 with read lock; unlock tables; ---echo # --> connection default connection default; unlock tables; --echo # @@ -350,11 +343,9 @@ unlock tables; --echo # does not conflict with SET GLOBAL read_only=1. --echo # set global read_only=1; ---echo # connection con1 connection con1; flush table t1 with read lock; unlock tables; ---echo # connection default connection default; set global read_only=0; --echo # @@ -362,15 +353,12 @@ set global read_only=0; --echo # tables locked with FLUSH TABLE <list> WITH READ LOCK. --echo # flush tables t1, t2 with read lock; ---echo # connection con1 connection con1; lock table t1 read, t2 read; unlock tables; ---echo # connection default connection default; unlock tables; ---echo # --> connection con1 connection con1; disconnect con1; --source include/wait_until_disconnected.inc @@ -440,13 +428,11 @@ drop table if exists t1; --enable_warnings connect (con1,localhost,root,,); connect (con2,localhost,root,,); ---echo # --> conection default connection default; create table t1 (a int); begin; select * from t1; ---echo # --> connection con1 connection con1; --echo # --echo # Issue a LOCK TABLE t1 READ. We could use HANDLER t1 OPEN @@ -454,13 +440,11 @@ connection con1; --echo # prevents FLUSH TABLE t1 from immediate completion would do. --echo # lock table t1 read; ---echo # --> connection con2 connection con2; --echo # --echo # FLUSH TABLE expels the table definition from the cache. --echo # Sending 'flush table t1'... send flush table t1; ---echo # --> connection default connection default; --echo # Let flush table sync in. let $wait_condition= @@ -469,7 +453,6 @@ let $wait_condition= and info = "flush table t1"; --source include/wait_condition.inc send select * from t1; ---echo # --> connection con1 connection con1; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -477,11 +460,9 @@ let $wait_condition= and info = "select * from t1"; select * from t1; unlock tables; ---echo # --> connection con2 connection con2; --echo # Reaping 'flush table t1'... reap; ---echo # --> connection default connection default; --echo # Reaping 'select * from t1'... reap; @@ -493,19 +474,16 @@ commit; begin; select * from t1; ---echo # --> connection con1 connection con1; --echo # --echo # Issue a LOCK TABLE t1 READ. --echo # lock table t1 read; ---echo # --> connection con2 connection con2; --echo # --echo # FLUSH TABLES expels the table definition from the cache. --echo # Sending 'flush tables'... send flush tables; ---echo # --> connection default connection default; --echo # Let flush table sync in. let $wait_condition= @@ -514,7 +492,6 @@ let $wait_condition= and info = "flush tables"; --source include/wait_condition.inc send select * from t1; ---echo # --> connection con1 connection con1; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -522,11 +499,9 @@ let $wait_condition= and info = "select * from t1"; select * from t1; unlock tables; ---echo # --> connection con2 connection con2; --echo # Reaping 'flush tables'... reap; ---echo # --> connection default connection default; --echo # Reaping 'select * from t1'... reap; @@ -534,15 +509,12 @@ commit; --echo # Cleanup ---echo # --> connection con1 connection con1; disconnect con1; --source include/wait_until_disconnected.inc ---echo # --> connection con2 connection con2; disconnect con2; --source include/wait_until_disconnected.inc ---echo # --> connection default connection default; drop table t1; @@ -593,12 +565,10 @@ create table t1 (i int); create table t2 (i int); handler t1 open; ---echo # Switching to connection 'con1'. connection con1; --echo # Sending: --send flush tables with read lock ---echo # Switching to connection 'con2'. connection con2; --echo # Wait until FTWRL starts waiting for 't1' to be closed. let $wait_condition= @@ -607,13 +577,11 @@ let $wait_condition= and info = "flush tables with read lock"; --source include/wait_condition.inc ---echo # Switching to connection 'default'. connection default; --echo # The below statement should not cause deadlock. --echo # Sending: --send insert into t2 values (1) ---echo # Switching to connection 'con2'. connection con2; --echo # Wait until INSERT starts to wait for FTWRL to go away. let $wait_condition= @@ -622,14 +590,12 @@ let $wait_condition= and info = "insert into t2 values (1)"; --source include/wait_condition.inc ---echo # Switching to connection 'con1'. connection con1; --echo # FTWRL should be able to continue now. --echo # Reap FTWRL. --reap unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap INSERT. --reap @@ -688,7 +654,6 @@ CREATE TRIGGER t1_au AFTER UPDATE ON t1 FOR EACH ROW SET @var = "a"; BEGIN; UPDATE t1 SET value= value + 1 WHERE id = 1; ---echo # Switching to connection 'con1'. connect(con1, localhost, root); --echo # The below FLUSH TABLES WITH READ LOCK should succeed and --echo # should not be blocked by the transaction in default connection. @@ -697,7 +662,6 @@ UNLOCK TABLES; disconnect con1; --source include/wait_until_disconnected.inc ---echo # Switching to connection 'default'. connection default; COMMIT; DROP TABLE t1; diff --git a/mysql-test/t/flush_block_commit.test b/mysql-test/t/flush_block_commit.test index 90443dc9242..6a6120ce63f 100644 --- a/mysql-test/t/flush_block_commit.test +++ b/mysql-test/t/flush_block_commit.test @@ -9,13 +9,9 @@ --echo # Save the initial number of concurrent sessions --source include/count_sessions.inc ---echo # Establish connection con1 (user=root) connect (con1,localhost,root,,); ---echo # Establish connection con2 (user=root) connect (con2,localhost,root,,); ---echo # Establish connection con3 (user=root) connect (con3,localhost,root,,); ---echo # Switch to connection con1 connection con1; --disable_warnings @@ -27,14 +23,11 @@ CREATE TABLE t1 (a INT) ENGINE=innodb; BEGIN; INSERT INTO t1 VALUES(1); ---echo # Switch to connection con2 connection con2; FLUSH TABLES WITH READ LOCK; ---echo # Switch to connection con1 connection con1; --echo # Sending: --send COMMIT ---echo # Switch to connection con2 connection con2; --echo # Wait until COMMIT gets blocked. let $wait_condition= @@ -44,33 +37,26 @@ let $wait_condition= --echo # Verify that 'con1' was blocked and data did not move. SELECT * FROM t1; UNLOCK TABLES; ---echo # Switch to connection con1 connection con1; --echo # Reaping COMMIT --reap # No deadlock ? ---echo # Switch to connection con1 connection con1; BEGIN; SELECT * FROM t1 FOR UPDATE; ---echo # Switch to connection con2 connection con2; BEGIN; send SELECT * FROM t1 FOR UPDATE; # blocked by con1 sleep 1; ---echo # Switch to connection con3 connection con3; send FLUSH TABLES WITH READ LOCK; # blocked by con2 ---echo # Switch to connection con1 connection con1; COMMIT; # should not be blocked by con3 ---echo # Switch to connection con2 connection con2; reap; COMMIT; ---echo # Switch to connection con3 connection con3; reap; UNLOCK TABLES; @@ -78,15 +64,12 @@ UNLOCK TABLES; # Bug#6732 FLUSH TABLES WITH READ LOCK + COMMIT hangs later FLUSH TABLES # WITH READ LOCK ---echo # Switch to connection con2 connection con2; COMMIT; # unlock InnoDB row locks to allow insertions ---echo # Switch to connection con1 connection con1; BEGIN; INSERT INTO t1 VALUES(10); FLUSH TABLES WITH READ LOCK; ---echo # Switch to connection con2 connection con2; FLUSH TABLES WITH READ LOCK; # bug caused hang here UNLOCK TABLES; @@ -100,7 +83,6 @@ COMMIT; --echo # Cleanup ---echo # Switch to connection default and close connections con1, con2, con3 connection default; disconnect con1; disconnect con2; diff --git a/mysql-test/t/flush_block_commit_notembedded.test b/mysql-test/t/flush_block_commit_notembedded.test index fe9dbf7c19e..3d894c5f16c 100644 --- a/mysql-test/t/flush_block_commit_notembedded.test +++ b/mysql-test/t/flush_block_commit_notembedded.test @@ -13,31 +13,24 @@ --source include/count_sessions.inc ---echo # Establish connection con1 (user=root) connect (con1,localhost,root,,); ---echo # Establish connection con2 (user=root) connect (con2,localhost,root,,); # FLUSH TABLES WITH READ LOCK should block writes to binlog too ---echo # Switch to connection con1 connection con1; CREATE TABLE t1 (a INT) ENGINE=innodb; RESET MASTER; SET AUTOCOMMIT=0; SELECT 1; ---echo # Switch to connection con2 connection con2; FLUSH TABLES WITH READ LOCK; --source include/show_binlog_events.inc ---echo # Switch to connection con1 connection con1; send INSERT INTO t1 VALUES (1); ---echo # Switch to connection con2 connection con2; sleep 1; --source include/show_binlog_events.inc UNLOCK TABLES; ---echo # Switch to connection con1 connection con1; reap; DROP TABLE t1; @@ -62,7 +55,6 @@ connection con2; commit; drop table t1; ---echo # Switch to connection default and close connections con1 and con2 connection default; disconnect con1; disconnect con2; diff --git a/mysql-test/t/flush_read_lock.test b/mysql-test/t/flush_read_lock.test index 7ba80ea38ac..4a9752ae9f1 100644 --- a/mysql-test/t/flush_read_lock.test +++ b/mysql-test/t/flush_read_lock.test @@ -231,41 +231,30 @@ unlock tables; --echo # COMMIT is blocked by active FTWRL in another --echo # connection. --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; begin; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Do some work so ROLLBACK is not a no-op. insert into t3_trans values (1); ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; rollback; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; begin; --echo # Do some work so COMMIT is not a no-op. insert into t3_trans values (1); ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --echo # Send: --send commit ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Wait until COMMIT is blocked. let $wait_condition= @@ -274,7 +263,6 @@ let $wait_condition= info = "commit"; --source include/wait_condition.inc unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap COMMIT. --reap @@ -286,11 +274,9 @@ insert into t3_trans values (1); set debug_sync='RESET'; set debug_sync='ha_commit_trans_after_acquire_commit_lock SIGNAL parked WAIT_FOR go'; --send commit ---echo # Switching to connection '$con_aux1'. connection $con_aux1; set debug_sync='now WAIT_FOR parked'; --send flush tables with read lock ---echo # Switching to connection '$con_aux2'. connection $con_aux2; --echo # Wait until FTWRL is blocked. let $wait_condition= @@ -299,16 +285,13 @@ let $wait_condition= info = "flush tables with read lock"; --source include/wait_condition.inc set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'default'. connection default; --echo # Reap COMMIT. --reap ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Reap FTWRL. --reap unlock tables; ---echo # Switching to connection 'default'. connection default; delete from t3_trans; set debug_sync= "RESET"; @@ -574,13 +557,10 @@ unlock tables; --echo # Check that active FTWRL in another connection --echo # blocks EXECUTE which changes data. --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --send execute stmt1 ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Check that EXECUTE is blocked. let $wait_condition= @@ -589,18 +569,15 @@ let $wait_condition= info = "insert into t1_base values (1)"; --source include/wait_condition.inc unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap EXECUTE. --reap set debug_sync='RESET'; set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go'; --send execute stmt1; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; set debug_sync='now WAIT_FOR parked'; --send flush tables with read lock ---echo # Switching to connection '$con_aux2'. connection $con_aux2; --echo # Wait until FTWRL is blocked. let $wait_condition= @@ -609,16 +586,13 @@ let $wait_condition= info = "flush tables with read lock"; --source include/wait_condition.inc set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'default'. connection default; --echo # Reap EXECUTE. --reap ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Reap FTWRL. --reap unlock tables; ---echo # Switching to connection 'default'. connection default; set debug_sync= "RESET"; delete from t1_base; @@ -808,23 +782,18 @@ drop trigger t1_bi; --echo # Check that FTWRL statements can be run while FTWRL --echo # is active in another connection. --echo # ---echo # Switching to connection '$con_aux1'. flush tables with read lock; --echo # The second FTWRL in a row is allowed at the moment. --echo # It does not make much sense as it does only flush. flush tables with read lock; unlock tables; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; flush tables with read lock; unlock tables; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # @@ -836,23 +805,17 @@ flush tables with read lock; --echo # It does not make much sense though. flush tables t1_base, t2_base with read lock; unlock tables; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; flush tables t1_base, t2_base with read lock; unlock tables; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; flush tables t1_base, t2_base with read lock; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --send flush tables with read lock ---echo # Switching to connection '$con_aux2'. connection $con_aux2; --echo # Wait until FTWRL is blocked. let $wait_condition= @@ -860,15 +823,12 @@ let $wait_condition= where state = "Waiting for table flush" and info = "flush tables with read lock"; --source include/wait_condition.inc ---echo # Switching to connection 'default'. connection default; unlock tables; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Reap FTWRL. --reap unlock tables; ---echo # Switching to connection 'default'. connection default; @@ -915,18 +875,14 @@ unlock tables; --echo # Check that HANDLER statements can be run while FTWRL --echo # is active in another connection. --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; handler t1_base open; handler t1_base read first; handler t1_base close; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; @@ -984,29 +940,23 @@ unlock tables; --echo # Check that KILL statements can be run while FTWRL --echo # is active in another connection. --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --error ER_QUERY_INTERRUPTED kill query @id; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Finally check that KILL doesn't block FTWRL set debug_sync='RESET'; set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go'; --send kill query @id ---echo # Switching to connection '$con_aux1'. connection $con_aux1; set debug_sync='now WAIT_FOR parked'; flush tables with read lock; unlock tables; set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'default'. connection default; --echo # Reap KILL. --error ER_QUERY_INTERRUPTED @@ -1043,17 +993,13 @@ flush tables with read lock; lock tables t1_base read; unlock tables; --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; lock tables t1_base read; unlock tables; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # @@ -1064,13 +1010,10 @@ flush tables with read lock; lock tables t1_base write; unlock tables; --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --send lock tables t1_base write ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Check that LOCK TABLES WRITE is blocked. let $wait_condition= @@ -1079,7 +1022,6 @@ let $wait_condition= info = "lock tables t1_base write"; --source include/wait_condition.inc unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap LOCK TABLES WRITE --reap @@ -1093,17 +1035,13 @@ flush tables with read lock; lock tables t1_temp write; unlock tables; --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; lock tables t1_temp write; unlock tables; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; @@ -1116,13 +1054,10 @@ flush tables with read lock; optimize table t1_base; unlock tables; --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --send optimize table t1_base ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Check that OPTIMIZE TABLE is blocked. let $wait_condition= @@ -1131,7 +1066,6 @@ let $wait_condition= info = "optimize table t1_base"; --source include/wait_condition.inc unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap OPTIMIZE TABLE --reap @@ -1191,43 +1125,31 @@ commit; --echo # Check that these statements are not blocked by --echo # active FTWRL in another connection. --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; begin; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Do some changes to avoid SAVEPOINT and friends --echo # being almost no-ops. insert into t3_trans values (1); ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; savepoint sv1; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; insert into t3_trans values (2); ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; rollback to savepoint sv1; release savepoint sv1; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; rollback; --echo # Check that these statements don't block FTWRL in @@ -1239,38 +1161,32 @@ insert into t3_trans values (1); set debug_sync='RESET'; set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go'; --send savepoint sv1 ---echo # Switching to connection '$con_aux1'. connection $con_aux1; set debug_sync='now WAIT_FOR parked'; flush tables with read lock; unlock tables; set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'default'. connection default; --echo # Reap SAVEPOINT --reap insert into t3_trans values (2); set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go'; --send rollback to savepoint sv1 ---echo # Switching to connection '$con_aux1'. connection $con_aux1; set debug_sync='now WAIT_FOR parked'; flush tables with read lock; unlock tables; set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'default'. connection default; --echo # Reap ROLLBACK TO SAVEPOINT --reap set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go'; --send release savepoint sv1 ---echo # Switching to connection '$con_aux1'. connection $con_aux1; set debug_sync='now WAIT_FOR parked'; flush tables with read lock; unlock tables; set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'default'. connection default; --echo # Reap RELEASE SAVEPOINT --reap @@ -1304,13 +1220,10 @@ flush tables with read lock; repair table t1_base; unlock tables; --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --send repair table t1_base ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Check that REPAIR TABLE is blocked. let $wait_condition= @@ -1319,7 +1232,6 @@ let $wait_condition= info = "repair table t1_base"; --source include/wait_condition.inc unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap REPAIR TABLE --reap @@ -1496,28 +1408,21 @@ delete from t3_temp_trans; --echo # SET AUTOCOMMIT=1 is blocked by active FTWRL in --echo # another connection. --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; set autocommit= 0; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Do some work so implicit commit in SET AUTOCOMMIT=1 --echo # is not a no-op. insert into t3_trans values (1); ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --echo # Send: --send set autocommit= 1 ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Wait until SET AUTOCOMMIT=1 is blocked. let $wait_condition= @@ -1526,7 +1431,6 @@ let $wait_condition= info = "set autocommit= 1"; --source include/wait_condition.inc unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap SET AUTOCOMMIT=1. --reap @@ -1538,11 +1442,9 @@ insert into t3_trans values (1); set debug_sync='RESET'; set debug_sync='ha_commit_trans_after_acquire_commit_lock SIGNAL parked WAIT_FOR go'; --send set autocommit= 1 ---echo # Switching to connection '$con_aux1'. connection $con_aux1; set debug_sync='now WAIT_FOR parked'; --send flush tables with read lock ---echo # Switching to connection '$con_aux2'. connection $con_aux2; --echo # Wait until FTWRL is blocked. let $wait_condition= @@ -1551,16 +1453,13 @@ let $wait_condition= info = "flush tables with read lock"; --source include/wait_condition.inc set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'default'. connection default; --echo # Reap SET AUTOCOMMIT=1. --reap ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Reap FTWRL. --reap unlock tables; ---echo # Switching to connection 'default'. connection default; delete from t3_trans; set debug_sync= "RESET"; @@ -1698,44 +1597,33 @@ unlock tables; --echo # Check that XA non-COMMIT statements are not and COMMIT is --echo # blocked by active FTWRL in another connection --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; xa start 'test1'; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; insert into t3_trans values (1); ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; xa end 'test1'; xa prepare 'test1'; xa rollback 'test1'; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; xa start 'test1'; insert into t3_trans values (1); ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; connection default; xa end 'test1'; xa prepare 'test1'; --echo # Send: --send xa commit 'test1'; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Wait until XA COMMIT is blocked. let $wait_condition= @@ -1744,7 +1632,6 @@ let $wait_condition= info = "xa commit 'test1'"; --source include/wait_condition.inc unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap XA COMMIT. --reap @@ -1758,11 +1645,9 @@ xa prepare 'test1'; set debug_sync='RESET'; set debug_sync='trans_xa_commit_after_acquire_commit_lock SIGNAL parked WAIT_FOR go'; --send xa commit 'test1' ---echo # Switching to connection '$con_aux1'. connection $con_aux1; set debug_sync='now WAIT_FOR parked'; --send flush tables with read lock ---echo # Switching to connection '$con_aux2'. connection $con_aux2; --echo # Wait until FTWRL is blocked. let $wait_condition= @@ -1771,16 +1656,13 @@ let $wait_condition= info = "flush tables with read lock"; --source include/wait_condition.inc set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'default'. connection default; --echo # Reap XA COMMIT. --reap ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Reap FTWRL. --reap unlock tables; ---echo # Switching to connection 'default'. connection default; delete from t3_trans; set debug_sync= "RESET"; @@ -1841,13 +1723,10 @@ flush tables with read lock; analyze table t3_trans; unlock tables; --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --send analyze table t3_trans ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Check that ANALYZE TABLE is blocked. let $wait_condition= @@ -1856,7 +1735,6 @@ let $wait_condition= info = "analyze table t3_trans"; --source include/wait_condition.inc unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap ANALYZE TABLE --reap @@ -1920,13 +1798,10 @@ let $cleanup_stmt= alter table t3_temp_trans drop column c1; begin; insert into t3_trans values (1); --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --send check table t1_base ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Check that CHECK TABLE is blocked. let $wait_condition= @@ -1935,20 +1810,16 @@ let $wait_condition= info = "check table t1_base"; --source include/wait_condition.inc unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap CHECK TABLE --reap begin; delete from t3_trans; --echo # ---echo # Switching to connection '$con_aux1'. connection $con_aux1; flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --send alter table t1_temp add column c1 int ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Check that ALTER TABLE is blocked. let $wait_condition= @@ -1957,7 +1828,6 @@ let $wait_condition= info = "alter table t1_temp add column c1 int"; --source include/wait_condition.inc unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Reap ALTER TABLE --reap @@ -1974,21 +1844,17 @@ alter table t1_temp drop column c1; begin; insert into t1_base values (1); insert into t3_trans values (1); ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # The below FTWRL should not be blocked by transaction in 'default'. flush tables with read lock; ---echo # Switching to connection 'default'. connection default; --echo # Transaction still is able to read even with FTWRL active in another --echo # connection. select * from t1_base; select * from t2_base; select * from t3_trans; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; unlock tables; ---echo # Switching to connection 'default'. connection default; commit; delete from t1_base; @@ -2004,11 +1870,9 @@ delete from t3_trans; set debug_sync='RESET'; set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go'; --send insert into t1_base values (1) ---echo # Switching to connection '$con_aux1'. connection $con_aux1; set debug_sync='now WAIT_FOR parked'; --send flush tables with read lock ---echo # Switching to connection '$con_aux2'. connection $con_aux2; --echo # Wait until FTWRL is blocked. let $wait_condition= @@ -2018,7 +1882,6 @@ let $wait_condition= --source include/wait_condition.inc --echo # Try to run another INSERT and see that it is blocked. --send insert into t2_base values (1); ---echo # Switching to connection 'con3'. connection con3; --echo # Wait until new INSERT is blocked. let $wait_condition= @@ -2027,20 +1890,16 @@ let $wait_condition= info = "insert into t2_base values (1)"; --echo # Unblock INSERT in the first connection. set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'default'. connection default; --echo # Reap first INSERT. --reap ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # Reap FTWRL. --reap unlock tables; ---echo # Switching to connection '$con_aux2'. connection $con_aux2; --echo # Reap second INSERT. --reap ---echo # Switching to connection 'default'. connection default; set debug_sync= "RESET"; delete from t1_base; @@ -2056,22 +1915,18 @@ delete from t2_base; --echo # only taken when there were such modifications. --echo flush tables with read lock; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; --echo # The below FTWRL should not be blocked by transaction in 'default'. flush tables with read lock; ---echo # Switching to connection 'default'. connection default; select * from t1_base; select * from t3_trans; commit; ---echo # Switching to connection '$con_aux1'. connection $con_aux1; select * from t1_base; select * from t3_trans; commit; unlock tables; ---echo # Switching to connection 'default'. connection default; unlock tables; diff --git a/mysql-test/t/flush_read_lock_kill.test b/mysql-test/t/flush_read_lock_kill.test index a672fa5dfc5..d83e5b3f1df 100644 --- a/mysql-test/t/flush_read_lock_kill.test +++ b/mysql-test/t/flush_read_lock_kill.test @@ -26,7 +26,6 @@ SET DEBUG_SYNC= 'RESET'; CREATE TABLE t1 (kill_id INT) engine = InnoDB; INSERT INTO t1 VALUES(connection_id()); ---echo # Switching to connection 'default'. connection default; --echo # Start transaction. BEGIN; @@ -38,7 +37,6 @@ SET DEBUG_SYNC='ha_commit_trans_after_acquire_commit_lock SIGNAL acquired WAIT_F --echo # Sending: --send COMMIT ---echo # Switching to 'con1'. connection con1; --echo # Wait till COMMIT acquires protection against global read --echo # lock and pauses. @@ -46,7 +44,6 @@ SET DEBUG_SYNC='now WAIT_FOR acquired'; --echo # Sending: send FLUSH TABLES WITH READ LOCK; ---echo # Switching to 'con2'. connection con2; SELECT ((@id := kill_id) - kill_id) FROM t1 LIMIT 1; @@ -61,19 +58,16 @@ let $wait_condition= --echo # Kill connection 'con1'. KILL CONNECTION @id; ---echo # Switching to 'con1'. connection con1; --echo # Try to reap FLUSH TABLES WITH READ LOCK, --echo # it fail due to killed statement and connection. --error 1317,2013 reap; ---echo # Switching to 'con2'. connection con2; --echo # Resume COMMIT. SET DEBUG_SYNC='now SIGNAL go'; ---echo # Switching to 'default'. connection default; --echo # Reaping COMMIT. --reap diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test index 47afb6664a5..222608c0579 100644 --- a/mysql-test/t/func_misc.test +++ b/mysql-test/t/func_misc.test @@ -617,7 +617,6 @@ select is_free_lock('test'); select is_used_lock('test') = connection_id(); connect (con1,localhost,root,,); ---echo # -> Switching to connection 'con1' connection con1; --echo # IS_USED_LOCK, IS_FREE_LOCK: the lock is acquired in another --echo # connection @@ -630,7 +629,6 @@ select get_lock('test', 0); --echo # RELEASE_LOCK returns 0 if the lock belongs to another connection select release_lock('test'); ---echo # -> Switching to connection 'default' connection default; --echo # RELEASE_LOCK returns 1 if it successfully releases a lock @@ -640,23 +638,19 @@ select release_lock('test'); --echo # Test that get_lock() returns NULL if error. select get_lock('test', 0); ---echo # -> Switching to connection 'con1' connection con1; create table t1 select connection_id() as id; send select get_lock('test', 7200); ---echo # -> Switching to connection 'default' connection default; let $wait_condition= SELECT count(*) > 0 FROM information_schema.processlist WHERE info LIKE 'select%' AND state='User lock'; source include/wait_condition.inc; select (@id := id) - id from t1; kill query @id; ---echo # -> Switching to connection 'con1' connection con1; reap; ---echo # -> Switching to connection 'default' connection default; --echo # GET_LOCK() works recursively @@ -686,12 +680,10 @@ select release_lock('test3'); --echo # Deadlocks are detected e.g. in case of a mutual wait select get_lock('test1', 0); ---echo # -> Switching to connection 'con1' connection con1; select get_lock('test2', 0); send select get_lock('test1', 7200); ---echo # -> Switching to connection 'default' connection default; let $wait_condition= SELECT count(*) > 0 FROM information_schema.processlist WHERE info LIKE 'select%' AND state='User lock'; source include/wait_condition.inc; @@ -700,13 +692,11 @@ select get_lock('test2', 7200); select release_lock('test1'); ---echo # -> Switching to connection 'con1' connection con1; reap; select release_lock('test2'); select release_lock('test1'); ---echo # -> Switching to connection 'default' connection default; --echo # LOCK/UNLOCK TABLES works fine with a user lock. @@ -738,12 +728,10 @@ select release_lock('test2'); --echo # are detected OK. select get_lock('test', 0); ---echo # -> Switching to connection 'con1' connection con1; lock table t1 write; send select get_lock('test', 7200); ---echo # -> Switching to connection 'default' connection default; let $wait_condition= SELECT count(*) > 0 FROM information_schema.processlist WHERE info LIKE 'select%' AND state = 'User lock'; source include/wait_condition.inc; @@ -752,7 +740,6 @@ lock table t1 read; select release_lock('test'); ---echo # -> Switching to connection 'con1' connection con1; reap; select release_lock('test'); @@ -1071,7 +1058,6 @@ DROP TABLE t2; --echo # MDEV-4018 : Microseconds in GET_LOCK() --echo # ---echo # -> Switching to connection 'default' connection default; select is_used_lock('test') = connection_id(); @@ -1079,7 +1065,6 @@ select is_used_lock('test') = connection_id(); select get_lock('test', 0); connect (con1,localhost,root,,); ---echo # -> Switching to connection 'con1' connection con1; select is_used_lock('test') = connection_id(); select get_lock('test', 0); @@ -1089,7 +1074,6 @@ select get_lock('test', 0.1); select get_lock('test', 0.000001); select get_lock('test', 0.0000000000000001); ---echo # -> Switching to connection 'default' connection default; select is_used_lock('test') = connection_id(); select release_lock('test'); diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test index 1d828cd8693..d3f84596106 100644 --- a/mysql-test/t/grant.test +++ b/mysql-test/t/grant.test @@ -1037,8 +1037,6 @@ GRANT ALL PRIVILEGES ON test.* TO mysqltest_1@localhost; # Test. --connect (bug9504_con1,localhost,mysqltest_1,,) ---echo ---echo ---> connection: bug9504_con1 # - Check that we can switch to the db; @@ -1065,9 +1063,6 @@ SELECT mysqltest4.f_inv(); # Cleanup. --connection default ---echo ---echo ---> connection: default - --disconnect bug9504_con1 DROP DATABASE mysqltest1; @@ -1106,8 +1101,6 @@ CREATE PROCEDURE mysqltest1.p1() SQL SECURITY INVOKER # Test. --connect (bug27337_con1,localhost,mysqltest_1,,mysqltest2) ---echo ---echo ---> connection: bug27337_con1 --error ER_TABLEACCESS_DENIED_ERROR CREATE TABLE t1(c INT); @@ -1120,8 +1113,6 @@ CREATE TABLE t1(c INT); --disconnect bug27337_con1 --connect (bug27337_con2,localhost,mysqltest_1,,mysqltest2) ---echo ---echo ---> connection: bug27337_con2 --error ER_TABLEACCESS_DENIED_ERROR CREATE TABLE t1(c INT); @@ -1131,9 +1122,6 @@ SHOW TABLES; # Cleanup. --connection default ---echo ---echo ---> connection: default - --disconnect bug27337_con2 DROP DATABASE mysqltest1; @@ -1162,8 +1150,6 @@ GRANT SELECT ON mysqltest2.t2 TO mysqltest_2@localhost; # Test. --connect (bug27337_con1,localhost,mysqltest_1,,mysqltest1) ---echo ---echo ---> connection: bug27337_con1 SHOW TABLES FROM mysqltest1; @@ -1172,8 +1158,6 @@ PREPARE stmt1 FROM 'SHOW TABLES FROM mysqltest1'; EXECUTE stmt1; --connect (bug27337_con2,localhost,mysqltest_2,,mysqltest2) ---echo ---echo ---> connection: bug27337_con2 SHOW COLUMNS FROM mysqltest2.t2; @@ -1182,15 +1166,11 @@ PREPARE stmt2 FROM 'SHOW COLUMNS FROM mysqltest2.t2'; EXECUTE stmt2; --connection default ---echo ---echo ---> connection: default REVOKE SELECT ON mysqltest1.t1 FROM mysqltest_1@localhost; REVOKE SELECT ON mysqltest2.t2 FROM mysqltest_2@localhost; --connection bug27337_con1 ---echo ---echo ---> connection: bug27337_con1 --error ER_DBACCESS_DENIED_ERROR SHOW TABLES FROM mysqltest1; @@ -1199,8 +1179,6 @@ SHOW TABLES FROM mysqltest1; EXECUTE stmt1; --connection bug27337_con2 ---echo ---echo ---> connection: bug27337_con2 --error ER_TABLEACCESS_DENIED_ERROR SHOW COLUMNS FROM mysqltest2.t2; @@ -1211,8 +1189,6 @@ EXECUTE stmt2; # Cleanup. --connection default ---echo ---echo ---> connection: default --disconnect bug27337_con1 --disconnect bug27337_con2 @@ -1321,8 +1297,6 @@ GRANT SELECT(b) ON t1 TO testuser@localhost; GRANT SELECT ON t2 TO testuser@localhost; GRANT SELECT ON mysqltest2.* TO testuser@localhost; ---echo ---echo # Connection: bug57952_con1 (testuser@localhost, db: mysqltest1) --connect (bug57952_con1,localhost,testuser,,mysqltest1) PREPARE s1 FROM 'SELECT b FROM t1'; PREPARE s2 FROM 'SELECT a FROM t2'; @@ -1336,16 +1310,12 @@ CALL p1; CALL p2; CALL p3; ---echo ---echo # Connection: default --connection default REVOKE SELECT ON t1 FROM testuser@localhost; GRANT SELECT(a) ON t1 TO testuser@localhost; REVOKE SELECT ON t2 FROM testuser@localhost; REVOKE SELECT ON mysqltest2.* FROM testuser@localhost; ---echo ---echo # Connection: bug57952_con1 (testuser@localhost, db: mysqltest1) --connection bug57952_con1 --echo # - Check column-level privileges... --error ER_COLUMNACCESS_DENIED_ERROR @@ -1380,8 +1350,6 @@ EXECUTE s3; --error ER_DBACCESS_DENIED_ERROR CALL p3; ---echo ---echo # Connection: default --connection default --disconnect bug57952_con1 DROP DATABASE mysqltest1; @@ -1410,14 +1378,10 @@ grant execute on procedure mysqltest1.p1 to mysqluser1@localhost; --echo # in privilege tables and in in-memory structures. show grants for mysqluser1@localhost; select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost'; ---echo # ---echo # Create connection 'bug_36544_con1' as 'mysqluser1@localhost'. --connect (bug36544_con1,localhost,mysqluser1,,) call mysqltest1.p1(); select mysqltest1.f1(); ---echo # ---echo # Switch to connection 'default'. --connection default drop user mysqluser1@localhost; @@ -1425,7 +1389,6 @@ drop user mysqluser1@localhost; --echo # Test that dropping of user is properly reflected in --echo # both privilege tables and in in-memory structures. --echo # ---echo # Switch to connection 'bug36544_con1'. --connection bug36544_con1 --echo # The connection cold be alive but should not be able to --echo # access to any of the stored routines. @@ -1435,8 +1398,6 @@ call mysqltest1.p1(); select mysqltest1.f1(); --disconnect bug36544_con1 ---echo # ---echo # Switch to connection 'default'. --connection default --echo # --echo # Now create user with the same name and check that he @@ -1444,16 +1405,12 @@ select mysqltest1.f1(); create user mysqluser1@localhost; show grants for mysqluser1@localhost; select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost'; ---echo # ---echo # Create connection 'bug_36544_con2' as 'mysqluser1@localhost'. --connect (bug36544_con2,localhost,mysqluser1,,) --echo # Newly created user should not be able to access any of the routines. --error ER_PROCACCESS_DENIED_ERROR call mysqltest1.p1(); --error ER_PROCACCESS_DENIED_ERROR select mysqltest1.f1(); ---echo # ---echo # Switch to connection 'default'. --connection default --echo # @@ -1482,23 +1439,18 @@ grant select on mysqltest1.t11 to mysqluser1@localhost; show grants for mysqluser1@localhost; select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost'; select db, table_name, table_priv from mysql.tables_priv where user='mysqluser1' and host='localhost'; ---echo # ---echo # Switch to connection 'bug36544_con2'. --connection bug36544_con2 call mysqltest1.p1(); select mysqltest1.f1(); select * from mysqltest1.t11; select * from mysqltest1.t22; ---echo # ---echo # Switch to connection 'default'. --connection default rename user mysqluser1@localhost to mysqluser10@localhost; --echo # --echo # Test that there are no privileges left for mysqluser1. --echo # ---echo # Switch to connection 'bug36544_con2'. --connection bug36544_con2 --echo # The connection cold be alive but should not be able to --echo # access to any of the stored routines or tables. @@ -1512,8 +1464,6 @@ select * from mysqltest1.t11; select * from mysqltest1.t22; --disconnect bug36544_con2 ---echo # ---echo # Switch to connection 'default'. --connection default --echo # --echo # Now create user with the old name and check that he @@ -1522,8 +1472,6 @@ create user mysqluser1@localhost; show grants for mysqluser1@localhost; select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser1' and host='localhost'; select db, table_name, table_priv from mysql.tables_priv where user='mysqluser1' and host='localhost'; ---echo # ---echo # Create connection 'bug_36544_con3' as 'mysqluser1@localhost'. --connect (bug36544_con3,localhost,mysqluser1,,) --echo # Newly created user should not be able to access to any of the --echo # stored routines or tables. @@ -1537,8 +1485,6 @@ select * from mysqltest1.t11; select * from mysqltest1.t22; --disconnect bug36544_con3 ---echo # ---echo # Switch to connection 'default'. --connection default --echo # --echo # Now check that privileges became associated with a new user @@ -1547,8 +1493,6 @@ select * from mysqltest1.t22; show grants for mysqluser10@localhost; select db, routine_name, routine_type, proc_priv from mysql.procs_priv where user='mysqluser10' and host='localhost'; select db, table_name, table_priv from mysql.tables_priv where user='mysqluser10' and host='localhost'; ---echo # ---echo # Create connection 'bug_36544_con4' as 'mysqluser10@localhost'. --connect (bug36544_con4,localhost,mysqluser10,,) call mysqltest1.p1(); select mysqltest1.f1(); @@ -1556,8 +1500,6 @@ select * from mysqltest1.t11; select * from mysqltest1.t22; --disconnect bug36544_con4 ---echo # ---echo # Switch to connection 'default'. --connection default --echo # --echo # Clean-up. @@ -1905,8 +1847,6 @@ GRANT USAGE ON *.* TO mysqltest_u1@localhost; --echo SHOW GRANTS FOR mysqltest_u1@localhost; ---echo ---echo # connection: con1 (mysqltest_u1@mysqltest_db1) --connect (con1,localhost,mysqltest_u1,,mysqltest_db1) --connection con1 @@ -1914,8 +1854,6 @@ SHOW GRANTS FOR mysqltest_u1@localhost; --error ER_TABLEACCESS_DENIED_ERROR SHOW CREATE TABLE t1; ---echo ---echo # connection: default --connection default --disconnect con1 @@ -2191,7 +2129,6 @@ DROP DATABASE IF EXISTS no_such_db; CREATE DATABASE secret; GRANT USAGE ON *.* TO untrusted@localhost; ---echo # Connection con1 connect (con1, localhost, untrusted); SHOW GRANTS; SHOW DATABASES; @@ -2204,7 +2141,6 @@ CREATE PROCEDURE no_such_db.foo() BEGIN END; --error ER_DBACCESS_DENIED_ERROR CREATE PROCEDURE secret.peek_at_secret() BEGIN END; ---echo # Connection default --connection default disconnect con1; DROP USER untrusted@localhost; diff --git a/mysql-test/t/grant2.test b/mysql-test/t/grant2.test index a40fd2afb18..5e8a130feea 100644 --- a/mysql-test/t/grant2.test +++ b/mysql-test/t/grant2.test @@ -744,8 +744,6 @@ CREATE TABLE mysqltest_db2.t2_1(a INT); --echo # sql_command enum). --echo ########################################################################### ---echo ---echo # -- connect con1, mysqltest_u1@localhost, mysqltest_db1 --connect (con1,localhost,mysqltest_u1,,mysqltest_db1) --echo # @@ -931,8 +929,6 @@ DROP TEMPORARY TABLE t1; --echo # table once it is created. --echo ########################################################################### ---echo ---echo # -- connect con2, mysqltest_u2@localhost, mysqltest_db1 --connect (con2,localhost,mysqltest_u2,,mysqltest_db1) --error ER_DBACCESS_DENIED_ERROR @@ -957,8 +953,6 @@ DROP TEMPORARY TABLE t4; --echo # context, even by user without any privileges on tables. --echo ########################################################################### ---echo ---echo # -- connect con3, mysqltest_u4@localhost, mysqltest_db1 --connect (con3,localhost,mysqltest_u4,,mysqltest_db1) CALL p1(); @@ -975,8 +969,6 @@ DROP TEMPORARY TABLE t4; --echo # a temporary table into the underlying-table-list. --echo ########################################################################### ---echo ---echo # -- connect con4, mysqltest_u5@localhost, mysqltest_db1 --connect (con4,localhost,mysqltest_u5,,mysqltest_db1) CREATE TEMPORARY TABLE t7(a INT); @@ -1004,21 +996,12 @@ DROP TEMPORARY TABLE t9; --echo # That's all. Cleanup. --echo ########################################################################### ---echo ---echo # -- connection: default --connection default ---echo # -- disconnect con1 --echo # All remaining temporary tables are automatically dropped. --disconnect con1 - ---echo # -- disconnect con2 --disconnect con2 - ---echo # -- disconnect con3 --disconnect con3 - ---echo # -- disconnect con4 --disconnect con4 SET GLOBAL keycache1.key_buffer_size = 0; diff --git a/mysql-test/t/grant4.test b/mysql-test/t/grant4.test index a3578c9b85a..2715b7c7145 100644 --- a/mysql-test/t/grant4.test +++ b/mysql-test/t/grant4.test @@ -183,7 +183,6 @@ flush table mysqltest_db1.t1; --remove_file $MYSQLD_DATADIR/mysqltest_db1/t1.MYI --copy_file std_data/corrupt_t1.MYI $MYSQLD_DATADIR/mysqltest_db1/t1.MYI ---echo # Switching to connection 'con1'. connection con1; check table mysqltest_db1.t1; --echo # The below statement should fail before repairing t1. @@ -199,7 +198,6 @@ repair table mysqltest_db1.t1; --echo # Clean-up. disconnect con1; --source include/wait_until_disconnected.inc ---echo # Switching to connection 'default'. connection default; drop database mysqltest_db1; drop user mysqltest_u1@localhost; diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test index f1e78441852..13f368b6dbe 100644 --- a/mysql-test/t/information_schema.test +++ b/mysql-test/t/information_schema.test @@ -1489,16 +1489,13 @@ drop tables if exists t1, t2, t3; create table t1 (i int); create table t2 (j int primary key auto_increment); connect (con3726_1,localhost,root,,test); ---echo # Switching to connection 'con3726_1' connection con3726_1; lock table t2 read; connect (con3726_2,localhost,root,,test); ---echo # Switching to connection 'con3726_2' connection con3726_2; --echo # RENAME below will be blocked by 'lock table t2 read' above but --echo # will add two pending requests for exclusive metadata locks. --send rename table t2 to t3 ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -1510,13 +1507,10 @@ select table_name, column_name, data_type from information_schema.columns where table_schema = 'test' and table_name in ('t1', 't2'); select table_name, auto_increment from information_schema.tables where table_schema = 'test' and table_name in ('t1', 't2'); ---echo # Switching to connection 'con3726_1' connection con3726_1; unlock tables; ---echo # Switching to connection 'con3726_2' connection con3726_2; --reap ---echo # Switching to connection 'default' connection default; disconnect con3726_1; disconnect con3726_2; @@ -1604,10 +1598,8 @@ create view v1 as select t1.a, t1.b from t1; alter table t1 change b c int; lock table t1 read; connect(con1, localhost, root,,); ---echo # --> connection con1 connection con1; send flush tables; ---echo # --> connection default connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -1623,13 +1615,11 @@ unlock tables; --echo # Cleanup. --echo # ---echo # --> connection con1 connection con1; --echo # Reaping 'flush tables' reap; disconnect con1; --source include/wait_until_disconnected.inc ---echo # --> connection default connection default; drop table t1; drop view v1; @@ -1663,17 +1653,11 @@ create table t2 (k int); --echo # blocked. lock tables t2 read; ---echo # ---echo # Switching to connection 'con12828477_1'. ---echo # connect (con12828477_1, localhost, root,,mysqltest); --echo # The below RENAME should wait on 't2' while --echo # keeping X lock on 't1'. --send rename table t1 to t3, t2 to t1, t3 to t2 ---echo # ---echo # Switching to connection 'con12828477_2'. ---echo # connect (con12828477_2, localhost, root,,mysqltest); --echo # Wait while the above RENAME is blocked. let $wait_condition= @@ -1686,9 +1670,6 @@ let $wait_condition= --echo # blocked on 't1' because of RENAME. --send select table_name, auto_increment from information_schema.tables where table_schema='mysqltest' ---echo # ---echo # Switching to connection 'con12828477_3'. ---echo # connect (con12828477_3, localhost, root,,mysqltest); --echo # Wait while the above SELECT is blocked. let $wait_condition= @@ -1701,31 +1682,19 @@ let $wait_condition= --echo # Check that it holds no lock on 't0' so it can be renamed. rename table t0 to t4; ---echo # ---echo # Switching to connection 'default'. ---echo # connection default; --echo # --echo # Unblock the first RENAME. unlock tables; ---echo # ---echo # Switching to connection 'con12828477_1'. ---echo # connection con12828477_1; --echo # Reap the first RENAME --reap ---echo # ---echo # Switching to connection 'con12828477_2'. ---echo # connection con12828477_2; --echo # Reap SELECT to I_S. --reap ---echo # ---echo # Switching to connection 'default'. ---echo # connection default; --echo # @@ -1739,17 +1708,11 @@ rename table t4 to t0; --echo # blocked. lock tables t2 read; ---echo # ---echo # Switching to connection 'con12828477_1'. ---echo # connection con12828477_1; --echo # The below RENAME should wait on 't2' while --echo # keeping X lock on 't1'. --send rename table t1 to t3, t2 to t1, t3 to t2 ---echo # ---echo # Switching to connection 'con12828477_2'. ---echo # connection con12828477_2; --echo # Wait while the above RENAME is blocked. let $wait_condition= @@ -1762,9 +1725,6 @@ let $wait_condition= --echo # blocked on 't1' because of RENAME. --send select event_object_table, trigger_name from information_schema.triggers where event_object_schema='mysqltest' ---echo # ---echo # Switching to connection 'con12828477_3'. ---echo # connection con12828477_3; --echo # Wait while the above SELECT is blocked. let $wait_condition= @@ -1777,31 +1737,19 @@ let $wait_condition= --echo # Check that it holds no lock on 't0' so it can be renamed. rename table t0 to t4; ---echo # ---echo # Switching to connection 'default'. ---echo # connection default; --echo # --echo # Unblock the first RENAME. unlock tables; ---echo # ---echo # Switching to connection 'con12828477_1'. ---echo # connection con12828477_1; --echo # Reap the first RENAME --reap ---echo # ---echo # Switching to connection 'con12828477_2'. ---echo # connection con12828477_2; --echo # Reap SELECT to I_S. --reap ---echo # ---echo # Switching to connection 'default'. ---echo # connection default; disconnect con12828477_1; disconnect con12828477_2; diff --git a/mysql-test/t/innodb_mysql_lock.test b/mysql-test/t/innodb_mysql_lock.test index b3c52a1b1cf..cb57c092e40 100644 --- a/mysql-test/t/innodb_mysql_lock.test +++ b/mysql-test/t/innodb_mysql_lock.test @@ -19,24 +19,20 @@ connect (con1,localhost,root,,); connect (con2,localhost,root,,); connect (con3,localhost,root,,); ---echo # Connection 1 connection con1; set @@autocommit=0; CREATE TABLE t1(s1 INT UNIQUE) ENGINE=innodb; INSERT INTO t1 VALUES (1); ---echo # Connection 2 connection con2; set @@autocommit=0; INSERT INTO t1 VALUES (2); --send INSERT INTO t1 VALUES (1) ---echo # Connection 3 connection con3; set @@autocommit=0; --send DROP TABLE t1 ---echo # Connection 1 connection con1; let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -85,7 +81,6 @@ begin; update t1 set c3=c3+1 where c2=3; --echo # ---echo # Switching to connection 'con37346'. connect (con37346,localhost,root,,test,,); connection con37346; --echo # The below ALTER TABLE statement should wait till transaction @@ -95,7 +90,6 @@ connection con37346; --send alter table t1 add column c4 int; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until the above ALTER TABLE gets blocked because this --echo # connection holds SW metadata lock on table to be altered. @@ -113,13 +107,11 @@ update t1 set c3=c3+1 where c2=4; commit; --echo # ---echo # Switching to connection 'con37346'. connection con37346; --echo # Reaping ALTER TABLE. --reap --echo # ---echo # Switching to connection 'default'. connection default; disconnect con37346; drop table t1; @@ -143,16 +135,13 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (i INT) engine= innodb; ---echo # Connection 2 --echo # Get user-level lock connection con2; SELECT get_lock('bug42147_lock', 60); ---echo # Connection 1 connection default; --send INSERT INTO t1 SELECT get_lock('bug42147_lock', 60) ---echo # Connection 2 connection con2; let $wait_condition= SELECT COUNT(*) > 0 FROM information_schema.processlist @@ -162,15 +151,12 @@ let $wait_condition= LOCK TABLES t1 READ; SELECT release_lock('bug42147_lock'); ---echo # Connection 1 connection default; --reap ---echo # Connection 2 connection con2; UNLOCK TABLES; ---echo # Connection 1 connection default; disconnect con2; DROP TABLE t1; @@ -187,18 +173,15 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a INT) engine=innodb; INSERT INTO t1 VALUES (1), (2), (3); ---echo # Connection con1 connect (con1, localhost, root); START TRANSACTION WITH CONSISTENT SNAPSHOT; SELECT * FROM t1; ---echo # Connection default connection default; --echo # This should block --echo # Sending: --send OPTIMIZE TABLE t1 ---echo # Connection con1 connection con1; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for table metadata lock' AND info='OPTIMIZE TABLE t1'; @@ -206,7 +189,6 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist SELECT * FROM t1; COMMIT; ---echo # Connection default connection default; --echo # Reaping OPTIMIZE TABLE t1 --reap @@ -230,18 +212,15 @@ CREATE VIEW v1 AS SELECT 1 FROM t1; connect (con2, localhost, root); connect (con3, localhost, root); ---echo # Connection con3 connection con3; LOCK TABLE t1 WRITE; ---echo # Connection default connection default; START TRANSACTION; # This should block due to t1 being locked. --echo # Sending: --send SELECT * FROM v1 ---echo # Connection con2 connection con2; --echo # Waiting for 'SELECT * FROM v1' to sync in. let $wait_condition= @@ -252,7 +231,6 @@ let $wait_condition= --echo # Sending: --send ALTER VIEW v1 AS SELECT 2 FROM t2 ---echo # Connection con3 connection con3; --echo # Waiting for 'ALTER VIEW v1 AS SELECT 2 FROM t2' to sync in. let $wait_condition= @@ -263,19 +241,16 @@ let $wait_condition= # Unlock t1 allowing SELECT * FROM v1 to proceed. UNLOCK TABLES; ---echo # Connection default; connection default; --echo # Reaping: SELECT * FROM v1 --reap SELECT * FROM v1; COMMIT; ---echo # Connection con2 connection con2; --echo # Reaping: ALTER VIEW v1 AS SELECT 2 FROM t2 --reap ---echo # Connection default connection default; DROP TABLE t1, t2; DROP VIEW v1; @@ -294,14 +269,12 @@ DROP TABLE IF EXISTS t1; --connect (con1,localhost,root) ---echo # Connection default connection default; CREATE TABLE t1 (id INT PRIMARY KEY, value INT) ENGINE = InnoDB; INSERT INTO t1 VALUES (1, 12345); START TRANSACTION; SELECT * FROM t1; ---echo # Connection con1 --connection con1 SET lock_wait_timeout=1; # Test with two timeouts, as the first version of this patch @@ -311,7 +284,6 @@ ALTER TABLE t1 ADD INDEX idx(value); --error ER_LOCK_WAIT_TIMEOUT ALTER TABLE t1 ADD INDEX idx(value); ---echo # Connection default --connection default SELECT * FROM t1; COMMIT; diff --git a/mysql-test/t/innodb_mysql_lock2.test b/mysql-test/t/innodb_mysql_lock2.test index 640f9652462..f319fe23568 100644 --- a/mysql-test/t/innodb_mysql_lock2.test +++ b/mysql-test/t/innodb_mysql_lock2.test @@ -789,12 +789,10 @@ begin; --echo # Acquire SR metadata lock on t1 and LOCK_S row-locks on its rows. insert into t2 select count(*) from t1; ---echo # Switching to connection 'con1'. connection con1; --echo # Sending: --send alter table t1 add column j int ---echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER is blocked because it tries to upgrade SNW --echo # metadata lock to X lock. @@ -817,12 +815,10 @@ insert into t1 values (6); --echo # Unblock ALTER TABLE. commit; ---echo # Switching to connection 'con1'. connection con1; --echo # Reaping ALTER TABLE. --reap ---echo # Switching to connection 'default'. connection default; --echo # @@ -838,12 +834,10 @@ begin; --echo # Acquire SR metadata lock on t1. select * from t1; ---echo # Switching to connection 'con1'. connection con1; --echo # Sending: --send alter table t1 rebuild partition p0 ---echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER is blocked because of active SR lock. let $wait_condition= @@ -859,12 +853,10 @@ insert into t2 select count(*) from t1; --echo # Unblock ALTER TABLE. commit; ---echo # Switching to connection 'con1'. connection con1; --echo # Reaping ALTER TABLE. --reap ---echo # Switching to connection 'default'. connection default; disconnect con1; --echo # Clean-up. diff --git a/mysql-test/t/innodb_mysql_sync.test b/mysql-test/t/innodb_mysql_sync.test index 31365cb8db8..66935f811d7 100644 --- a/mysql-test/t/innodb_mysql_sync.test +++ b/mysql-test/t/innodb_mysql_sync.test @@ -22,20 +22,17 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (id INT) engine=innodb; connect (con2, localhost, root); ---echo # Connection 1 --echo # Start optimizing table connection default; SET DEBUG_SYNC='ha_admin_try_alter SIGNAL optimize_started WAIT_FOR table_altered'; --send OPTIMIZE TABLE t1 ---echo # Connection 2 --echo # Change table to engine=memory connection con2; SET DEBUG_SYNC='now WAIT_FOR optimize_started'; ALTER TABLE t1 engine=memory; SET DEBUG_SYNC='now SIGNAL table_altered'; ---echo # Connection 1 --echo # Complete optimization connection default; --reap @@ -59,24 +56,20 @@ connection default; CREATE TABLE t1(a INT) ENGINE= InnoDB; ---echo # Connection con1 connection con1; SET DEBUG_SYNC= "ha_admin_open_ltable SIGNAL opening WAIT_FOR dropped"; --echo # Sending: --send OPTIMIZE TABLE t1 ---echo # Connection default connection default; SET DEBUG_SYNC= "now WAIT_FOR opening"; DROP TABLE t1; SET DEBUG_SYNC= "now SIGNAL dropped"; ---echo # Connection con1 connection con1; --echo # Reaping: OPTIMIZE TABLE t1 --reap ---echo # Connection default connection default; disconnect con1; SET DEBUG_SYNC= "RESET"; @@ -123,26 +116,22 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a INT) ENGINE=InnoDB; INSERT INTO t1 VALUES (1), (2); ---echo # Connection con1 connect (con1,localhost,root); let $ID= `SELECT connection_id()`; SET DEBUG_SYNC= 'ha_admin_open_ltable SIGNAL waiting WAIT_FOR killed'; --echo # Sending: --send OPTIMIZE TABLE t1 ---echo # Connection default connection default; SET DEBUG_SYNC= 'now WAIT_FOR waiting'; --replace_result $ID ID eval KILL QUERY $ID; SET DEBUG_SYNC= 'now SIGNAL killed'; ---echo # Connection con1 connection con1; --echo # Reaping: OPTIMIZE TABLE t1 --reap ---echo # Connection default connection default; DROP TABLE t1; SET DEBUG_SYNC= 'RESET'; @@ -164,7 +153,6 @@ connect(con2,localhost,root); --echo # Test 1: Secondary index, should not block reads (original test case). ---echo # Connection default connection default; CREATE DATABASE db1; CREATE TABLE db1.t1(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, value INT) engine=innodb; @@ -173,7 +161,6 @@ SET DEBUG_SYNC= "alter_table_inplace_after_lock_downgrade SIGNAL manage WAIT_FOR --echo # Sending: --send ALTER TABLE db1.t1 ADD INDEX(value) ---echo # Connection con1 connection con1; SET DEBUG_SYNC= "now WAIT_FOR manage"; # Neither of these two statements should be blocked @@ -181,7 +168,6 @@ USE db1; SELECT * FROM t1; SET DEBUG_SYNC= "now SIGNAL query"; ---echo # Connection default connection default; --echo # Reaping: ALTER TABLE db1.t1 ADD INDEX(value) --reap @@ -194,7 +180,6 @@ SET DEBUG_SYNC= "alter_table_inplace_after_lock_downgrade SIGNAL manage WAIT_FOR --echo # Sending: --send ALTER TABLE t1 ADD UNIQUE INDEX(a), LOCK=SHARED ---echo # Connection con1 connection con1; SET DEBUG_SYNC= "now WAIT_FOR manage"; USE test; @@ -202,7 +187,6 @@ SELECT * FROM t1; --echo # Sending: --send UPDATE t1 SET a=NULL ---echo # Connection con2 connection con2; --echo # Waiting for SELECT to be blocked by the metadata lock on t1 let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist @@ -211,33 +195,28 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist --source include/wait_condition.inc SET DEBUG_SYNC= "now SIGNAL query"; ---echo # Connection default connection default; --echo # Reaping: ALTER TABLE t1 ADD UNIQUE INDEX(a) --reap ---echo # Connection con1 connection con1; --echo # Reaping: UPDATE t1 SET a=NULL --reap --echo # Test 3: Primary index (explicit), should block writes. ---echo # Connection default connection default; ALTER TABLE t1 DROP INDEX a; SET DEBUG_SYNC= "alter_table_inplace_after_lock_downgrade SIGNAL manage WAIT_FOR query"; --echo # Sending: --send ALTER TABLE t1 ADD PRIMARY KEY (a), LOCK=SHARED ---echo # Connection con1 connection con1; SET DEBUG_SYNC= "now WAIT_FOR manage"; SELECT * FROM t1; --echo # Sending: --send UPDATE t1 SET a=NULL ---echo # Connection con2 connection con2; --echo # Waiting for SELECT to be blocked by the metadata lock on t1 let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist @@ -246,31 +225,26 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist --source include/wait_condition.inc SET DEBUG_SYNC= "now SIGNAL query"; ---echo # Connection default connection default; --echo # Reaping: ALTER TABLE t1 ADD PRIMARY KEY (a) --reap ---echo # Connection con1 connection con1; --echo # Reaping: UPDATE t1 SET a=NULL --reap --echo # Test 4: Secondary unique index, should not block reads. ---echo # Connection default connection default; SET DEBUG_SYNC= "alter_table_inplace_after_lock_downgrade SIGNAL manage WAIT_FOR query"; --echo # Sending: --send ALTER TABLE t1 ADD UNIQUE (b) ---echo # Connection con1 connection con1; SET DEBUG_SYNC= "now WAIT_FOR manage"; SELECT * FROM t1; SET DEBUG_SYNC= "now SIGNAL query"; ---echo # Connection default connection default; --echo # Reaping: ALTER TABLE t1 ADD UNIQUE (b) --reap @@ -293,14 +267,12 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1(a INT NOT NULL, b INT NOT NULL) engine=innodb; INSERT INTO t1 VALUES (1, 12345), (2, 23456); ---echo # Connection con1 --connect (con1,localhost,root) SET SESSION debug_dbug= "+d,alter_table_rollback_new_index"; --error ER_UNKNOWN_ERROR ALTER TABLE t1 ADD PRIMARY KEY(a); SELECT * FROM t1; ---echo # Connection default --connection default SELECT * FROM t1; DROP TABLE t1; @@ -322,20 +294,17 @@ CREATE DATABASE db1; connect(con1, localhost, root); connect(con2, localhost, root); ---echo # Connection con1 connection con1; SET DEBUG_SYNC= 'after_innobase_rename_table SIGNAL locked WAIT_FOR continue'; --echo # Sending: --send ALTER TABLE t1 RENAME db1.t1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # DROP DATABASE db1 should now be blocked by ALTER TABLE --echo # Sending: --send DROP DATABASE db1 ---echo # Connection default connection default; --echo # Check that DROP DATABASE is blocked by IX lock on db1 let $wait_condition= @@ -346,17 +315,14 @@ let $wait_condition= --echo # Resume ALTER TABLE SET DEBUG_SYNC= 'now SIGNAL continue'; ---echo # Connection con1 connection con1; --echo # Reaping: ALTER TABLE t1 RENAME db1.t1; --reap ---echo # Connection con2 connection con2; --echo # Reaping: DROP DATABASE db1 --reap ---echo # Connection default; connection default; SET DEBUG_SYNC= 'RESET'; disconnect con1; @@ -384,7 +350,6 @@ SET SESSION lock_wait_timeout= 1; --echo # 1: In-place + writes blocked. --echo # ---echo # Connection default --connection default SET DEBUG_SYNC= 'alter_opened_table SIGNAL opened WAIT_FOR continue1'; SET DEBUG_SYNC= 'alter_table_inplace_after_lock_upgrade SIGNAL upgraded WAIT_FOR continue2'; @@ -393,7 +358,6 @@ SET DEBUG_SYNC= 'alter_table_before_main_binlog SIGNAL binlog WAIT_FOR continue4 --echo # Sending: --send ALTER TABLE t1 ADD INDEX i1(b), ALGORITHM= INPLACE, LOCK= SHARED ---echo # Connection con1; --connection con1 SET DEBUG_SYNC= 'now WAIT_FOR opened'; --echo # At this point, neither reads nor writes should be blocked. @@ -425,7 +389,6 @@ SELECT * FROM t1; INSERT INTO t1 VALUES (6,6); SET DEBUG_SYNC= 'now SIGNAL continue4'; ---echo # Connection default --connection default --echo # Reaping ALTER TABLE ... --reap @@ -442,7 +405,6 @@ SET DEBUG_SYNC= 'alter_table_before_main_binlog SIGNAL binlog WAIT_FOR continue3 --echo # Sending: --send ALTER TABLE t1 ADD INDEX i2(b), ALGORITHM= COPY, LOCK= SHARED ---echo # Connection con1; --connection con1 SET DEBUG_SYNC= 'now WAIT_FOR opened'; --echo # At this point, neither reads nor writes should be blocked. @@ -465,7 +427,6 @@ SELECT * FROM t1 limit 1; INSERT INTO t1 VALUES (5,5); SET DEBUG_SYNC= 'now SIGNAL continue3'; ---echo # Connection default --connection default --echo # Reaping ALTER TABLE ... --reap @@ -479,7 +440,6 @@ DELETE FROM t1 WHERE a= 3; --echo # TODO: Enable this test once WL#5526 is pushed --disable_parsing ---echo # Connection default --connection default SET DEBUG_SYNC= 'alter_opened_table SIGNAL opened WAIT_FOR continue1'; SET DEBUG_SYNC= 'alter_table_inplace_after_lock_upgrade SIGNAL upgraded WAIT_FOR continue2'; @@ -489,7 +449,6 @@ SET DEBUG_SYNC= 'alter_table_before_main_binlog SIGNAL binlog WAIT_FOR continue5 --echo # Sending: --send ALTER TABLE t1 ADD INDEX i3(b), ALGORITHM= INPLACE, LOCK= NONE ---echo # Connection con1; --connection con1 SET DEBUG_SYNC= 'now WAIT_FOR opened'; --echo # At this point, neither reads nor writes should be blocked. @@ -526,7 +485,6 @@ SELECT * FROM t1; INSERT INTO t1 VALUES (7,7); SET DEBUG_SYNC= 'now SIGNAL continue5'; ---echo # Connection default --connection default --echo # Reaping ALTER TABLE ... --reap @@ -540,7 +498,6 @@ DELETE FROM t1 WHERE a= 3 OR a= 4; --echo # 4: In-place + reads and writes blocked. --echo # ---echo # Connection default --connection default SET DEBUG_SYNC= 'alter_opened_table SIGNAL opened WAIT_FOR continue1'; SET DEBUG_SYNC= 'alter_table_inplace_after_lock_upgrade SIGNAL upgraded WAIT_FOR continue2'; @@ -549,7 +506,6 @@ SET DEBUG_SYNC= 'alter_table_before_main_binlog SIGNAL binlog WAIT_FOR continue4 --echo # Sending: --send ALTER TABLE t1 ADD INDEX i4(b), ALGORITHM= INPLACE, LOCK= EXCLUSIVE ---echo # Connection con1; --connection con1 SET DEBUG_SYNC= 'now WAIT_FOR opened'; --echo # At this point, neither reads nor writes should be blocked. @@ -581,7 +537,6 @@ SELECT * FROM t1; INSERT INTO t1 VALUES (6,6); SET DEBUG_SYNC= 'now SIGNAL continue4'; ---echo # Connection default --connection default --echo # Reaping ALTER TABLE ... --reap @@ -606,7 +561,6 @@ INSERT INTO t1 VALUES (155, 45, 55); --echo #Concurrent INSERT, UPDATE, SELECT and DELETE is supported --echo #during OPTIMIZE TABLE operation for INNODB tables. ---enable_connect_log --connection default --echo #OPTIMIZE TABLE operation. --send OPTIMIZE TABLE t1 @@ -785,7 +739,6 @@ SET DEBUG_SYNC= 'now WAIT_FOR rebuild'; --connection default --reap ---disable_connect_log --disconnect con1 SET DEBUG_SYNC= 'RESET'; diff --git a/mysql-test/t/kill.test b/mysql-test/t/kill.test index aaf931a2e7f..b6000ffced1 100644 --- a/mysql-test/t/kill.test +++ b/mysql-test/t/kill.test @@ -345,8 +345,6 @@ SET DEBUG_SYNC = 'RESET'; --echo # depending on platform. --echo # ---echo ---echo # Connection: con1. --connection con1 let $ID= `SELECT @id := CONNECTION_ID()`; SET DEBUG_SYNC= 'thread_end SIGNAL con1_end'; @@ -385,14 +383,11 @@ connect (dml, localhost, root, , ); connect (ddl, localhost, root, , ); --echo # Test for RENAME TABLE ---echo # Switching to connection 'blocker' connection blocker; lock table t1 read; ---echo # Switching to connection 'ddl' connection ddl; let $ID= `select connection_id()`; --send rename table t1 to t2 ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -401,14 +396,12 @@ let $wait_condition= --source include/wait_condition.inc --replace_result $ID ID eval kill query $ID; ---echo # Switching to connection 'ddl' connection ddl; --error ER_QUERY_INTERRUPTED --reap --echo # Test for DROP TABLE --send drop table t1 ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -417,14 +410,12 @@ let $wait_condition= --source include/wait_condition.inc --replace_result $ID ID eval kill query $ID; ---echo # Switching to connection 'ddl' connection ddl; --error ER_QUERY_INTERRUPTED --reap --echo # Test for CREATE TRIGGER --send create trigger t1_bi before insert on t1 for each row set @a:=1 ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -433,7 +424,6 @@ let $wait_condition= --source include/wait_condition.inc --replace_result $ID ID eval kill query $ID; ---echo # Switching to connection 'ddl' connection ddl; --error ER_QUERY_INTERRUPTED --reap @@ -443,7 +433,6 @@ connection ddl; --echo # --echo # Full-blown ALTER which should copy table --send alter table t1 add column j int ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -452,14 +441,12 @@ let $wait_condition= --source include/wait_condition.inc --replace_result $ID ID eval kill query $ID; ---echo # Switching to connection 'ddl' connection ddl; --error ER_QUERY_INTERRUPTED --reap --echo # Two kinds of simple ALTER --send alter table t1 rename to t2 ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -468,12 +455,10 @@ let $wait_condition= --source include/wait_condition.inc --replace_result $ID ID eval kill query $ID; ---echo # Switching to connection 'ddl' connection ddl; --error ER_QUERY_INTERRUPTED --reap --send alter table t1 disable keys ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -482,13 +467,11 @@ let $wait_condition= --source include/wait_condition.inc --replace_result $ID ID eval kill query $ID; ---echo # Switching to connection 'ddl' connection ddl; --error ER_QUERY_INTERRUPTED --reap --echo # Fast ALTER --send alter table t1 alter column i set default 100 ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -497,20 +480,16 @@ let $wait_condition= --source include/wait_condition.inc --replace_result $ID ID eval kill query $ID; ---echo # Switching to connection 'ddl' connection ddl; --error ER_QUERY_INTERRUPTED --reap --echo # Special case which is triggered only for MERGE tables. ---echo # Switching to connection 'blocker' connection blocker; unlock tables; create table t2 (i int primary key) engine=merge union=(t1); lock tables t2 read; ---echo # Switching to connection 'ddl' connection ddl; --send alter table t2 alter column i set default 100 ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -519,21 +498,17 @@ let $wait_condition= --source include/wait_condition.inc --replace_result $ID ID eval kill query $ID; ---echo # Switching to connection 'ddl' connection ddl; --error ER_QUERY_INTERRUPTED --reap --echo # Test for DML waiting for meta-data lock ---echo # Switching to connection 'blocker' connection blocker; unlock tables; lock tables t1 read; ---echo # Switching to connection 'ddl' connection ddl; # Let us add pending exclusive metadata lock on t2 --send truncate table t1 ---echo # Switching to connection 'dml' connection dml; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -542,7 +517,6 @@ let $wait_condition= --source include/wait_condition.inc let $ID2= `select connection_id()`; --send insert into t1 values (1) ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -551,26 +525,20 @@ let $wait_condition= --source include/wait_condition.inc --replace_result $ID2 ID2 eval kill query $ID2; ---echo # Switching to connection 'dml' connection dml; --error ER_QUERY_INTERRUPTED --reap ---echo # Switching to connection 'blocker' connection blocker; unlock tables; ---echo # Switching to connection 'ddl' connection ddl; --reap --echo # Test for DML waiting for tables to be flushed ---echo # Switching to connection 'blocker' connection blocker; lock tables t1 read; ---echo # Switching to connection 'ddl' connection ddl; --echo # Let us mark locked table t1 as old --send flush tables ---echo # Switching to connection 'dml' connection dml; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -578,7 +546,6 @@ let $wait_condition= info = "flush tables"; --source include/wait_condition.inc --send select * from t1 ---echo # Switching to connection 'default' connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -587,19 +554,15 @@ let $wait_condition= --source include/wait_condition.inc --replace_result $ID2 ID2 eval kill query $ID2; ---echo # Switching to connection 'dml' connection dml; --error ER_QUERY_INTERRUPTED --reap ---echo # Switching to connection 'blocker' connection blocker; unlock tables; ---echo # Switching to connection 'ddl' connection ddl; --reap --echo # Cleanup. ---echo # Switching to connection 'default' connection default; drop table t1; drop table t2; diff --git a/mysql-test/t/kill_processlist-6619.test b/mysql-test/t/kill_processlist-6619.test index 95af83be56d..df5f410208b 100644 --- a/mysql-test/t/kill_processlist-6619.test +++ b/mysql-test/t/kill_processlist-6619.test @@ -4,7 +4,6 @@ --source include/not_embedded.inc --source include/have_debug_sync.inc ---enable_connect_log --connect (con1,localhost,root,,) --let $con_id = `SELECT CONNECTION_ID()` --replace_column 1 # 3 # 6 # 7 # diff --git a/mysql-test/t/kill_query-6728.test b/mysql-test/t/kill_query-6728.test index 485256a65b6..a04c51a88dc 100644 --- a/mysql-test/t/kill_query-6728.test +++ b/mysql-test/t/kill_query-6728.test @@ -1,7 +1,6 @@ # # MDEV-6728 KILL QUERY executed on an idle connection can interrupt the next query # ---enable_connect_log --connect (con1,localhost,root,,) let $id=`select connection_id()`; diff --git a/mysql-test/t/lock.test b/mysql-test/t/lock.test index 78f0e2ecf8d..23eb04d7826 100644 --- a/mysql-test/t/lock.test +++ b/mysql-test/t/lock.test @@ -333,7 +333,6 @@ connect(con1,localhost,root,,); set autocommit= 0; insert into t1 values (1); lock table t1 write; ---echo # Disconnect --echo # Ensure that metadata locks will be released if there is an open --echo # transaction (autocommit=off) in conjunction with lock tables. disconnect con1; @@ -349,7 +348,6 @@ create table t1 (a int); connect(con1,localhost,root,,); begin; insert into t1 values (1); ---echo # Disconnect --echo # Ensure that metadata locks held by the transaction are released. disconnect con1; connection default; @@ -556,12 +554,10 @@ connect (con2, localhost, root); CREATE TABLE t1 (id INT); CREATE TABLE t2 (id INT); ---echo # Connection default connection default; LOCK TABLE t1 WRITE; ANALYZE TABLE t1; ---echo # Connection con2 connection con2; LOCK TABLE t2 WRITE; --echo # This used to hang until the first connection @@ -570,7 +566,6 @@ FLUSH TABLE t2; UNLOCK TABLES; ---echo # Connection default connection default; UNLOCK TABLES; DROP TABLE t1, t2; diff --git a/mysql-test/t/lock_multi.test b/mysql-test/t/lock_multi.test index efd0fe5d630..51cc4a50233 100644 --- a/mysql-test/t/lock_multi.test +++ b/mysql-test/t/lock_multi.test @@ -371,13 +371,10 @@ create table t1 (a int); create table t2 like t1; connection con1; ---echo # con1 lock tables t1 write; connection con2; ---echo # con2 send flush tables with read lock; connection con5; ---echo # con5 let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and @@ -385,7 +382,6 @@ let $wait_condition= --source include/wait_condition.inc --echo # global read lock is taken connection con3; ---echo # con3 send select * from t2 for update; connection con5; let $wait_condition= @@ -395,7 +391,6 @@ let $wait_condition= --source include/wait_condition.inc --echo # waiting for release of read lock connection con4; ---echo # con4 --echo # would hang and later cause a deadlock flush tables t2; connection con1; @@ -431,13 +426,10 @@ create table t2 like t1; --echo # connection default; ---echo # default flush tables with read lock; connection con1; ---echo # con1 send update t2 set a = 1; connection default; ---echo # default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and @@ -445,13 +437,10 @@ let $wait_condition= --source include/wait_condition.inc --echo # statement is waiting for release of read lock connection con2; ---echo # con2 flush table t2; connection default; ---echo # default unlock tables; connection con1; ---echo # con1 --reap --echo # @@ -459,13 +448,10 @@ connection con1; --echo # connection default; ---echo # default flush tables with read lock; connection con1; ---echo # con1 send lock tables t2 write; connection default; ---echo # default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and @@ -473,13 +459,10 @@ let $wait_condition= --source include/wait_condition.inc --echo # statement is waiting for release of read lock connection con2; ---echo # con2 flush table t2; connection default; ---echo # default unlock tables; connection con1; ---echo # con1 --reap unlock tables; @@ -553,13 +536,10 @@ drop table if exists t1; create table t1 (i int); connect (flush,localhost,root,,test,,); connection default; ---echo connection: default lock tables t1 write; connection flush; ---echo connection: flush --send flush tables with read lock; connection default; ---echo connection: default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and @@ -568,14 +548,12 @@ let $wait_condition= alter table t1 add column j int; connect (insert,localhost,root,,test,,); connection insert; ---echo connection: insert let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock" and info = "flush tables with read lock"; --source include/wait_condition.inc --send insert into t1 values (1,2); ---echo connection: default connection default; let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -584,7 +562,6 @@ let $wait_condition= --source include/wait_condition.inc unlock tables; connection flush; ---echo connection: flush --reap let $wait_condition= select count(*) = 1 from information_schema.processlist @@ -615,13 +592,10 @@ drop table if exists t1; create table t1 (i int); connect (flush,localhost,root,,test,,); connection default; ---echo connection: default lock tables t1 write; connection flush; ---echo connection: flush --send flush tables with read lock; connection default; ---echo connection: default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock"; @@ -684,13 +658,10 @@ drop table if exists t1; create table t1 (i int); connect (flush,localhost,root,,test,,); connection default; ---echo connection: default lock tables t1 write; connection flush; ---echo connection: flush --send flush tables with read lock; connection default; ---echo connection: default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock"; @@ -718,8 +689,6 @@ insert into t1 values (1,1,0),(2,2,0),(3,3,0),(4,4,0),(5,5,0); begin; update t1 set c3=c3+1 where c2=3; ---echo # ---echo # Switching to connection 'con46272'. connect (con46272,localhost,root,,test,,); connection con46272; --echo # The below ALTER TABLE statement should wait till transaction @@ -728,8 +697,6 @@ connection con46272; --echo # Sending: --send alter table t1 add column c4 int; ---echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until the above ALTER TABLE gets blocked because this --echo # connection holds SW metadata lock on table to be altered. @@ -746,14 +713,10 @@ update t1 set c3=c3+1 where c2=4; --echo # Unblock ALTER TABLE by committing transaction. commit; ---echo # ---echo # Switching to connection 'con46272'. connection con46272; --echo # Reaping ALTER TABLE. --reap ---echo # ---echo # Switching to connection 'default'. connection default; disconnect con46272; drop table t1; @@ -794,14 +757,12 @@ DROP VIEW v1; CREATE TABLE t1 ( f1 integer ); CREATE VIEW v1 AS SELECT f1 FROM t1 ; ---echo # Connection 2 connect (con2,localhost,root); LOCK TABLES t1 WRITE, v1 READ; FLUSH TABLE t1; disconnect con2; --source include/wait_until_disconnected.inc ---echo # Connection 1 connection default; LOCK TABLES t1 WRITE; FLUSH TABLE t1; # Assertion happened here @@ -826,12 +787,10 @@ create view v1 as select i from t1; begin; select * from t1; ---echo # Switching to connection 'con50913'. connection con50913; --echo # Sending: --send alter table t1 add column j int ---echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER TABLE gets blocked. let $wait_condition= @@ -847,22 +806,18 @@ delete a from t1 as a where i = 1; --echo # Unblock ALTER TABLE. commit; ---echo # Switching to connection 'con50913'. connection con50913; --echo # Reaping ALTER TABLE; --reap ---echo # Switching to connection 'default'. connection default; begin; select * from v1; ---echo # Switching to connection 'con50913'. connection con50913; --echo # Sending: --send alter table t1 drop column j ---echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER TABLE gets blocked. let $wait_condition= @@ -878,12 +833,10 @@ insert into v1 values (1); --echo # Unblock ALTER TABLE. commit; ---echo # Switching to connection 'con50913'. connection con50913; --echo # Reaping ALTER TABLE; --reap ---echo # Switching to connection 'default'. connection default; disconnect con50913; drop view v1; @@ -910,17 +863,14 @@ SET SESSION lock_wait_timeout= 1; --echo # Test 1: acquire exclusive lock --echo # ---echo # Connection default connection default; START TRANSACTION; INSERT INTO t1 VALUES (1); ---echo # Connection 2 connection con2; --error ER_LOCK_WAIT_TIMEOUT DROP TABLE t1; ---echo # Connection default connection default; COMMIT; @@ -928,17 +878,14 @@ COMMIT; --echo # Test 2: upgrade shared lock --echo # ---echo # Connection default connection default; START TRANSACTION; SELECT * FROM t1; ---echo # Connection 2 connection con2; --error ER_LOCK_WAIT_TIMEOUT ALTER TABLE t1 RENAME TO t2; ---echo # Connection default connection default; COMMIT; @@ -946,16 +893,13 @@ COMMIT; --echo # Test 3: acquire shared lock --echo # ---echo # Connection default connection default; LOCK TABLE t1 WRITE; ---echo # Connection 2 connection con2; --error ER_LOCK_WAIT_TIMEOUT INSERT INTO t1(id) VALUES (2); ---echo # Connection default connection default; UNLOCK TABLES; @@ -963,16 +907,13 @@ UNLOCK TABLES; --echo # Test 4: table level locks --echo # ---echo # Connection default connection default; LOCK TABLE t1 READ; ---echo # Connection 2 connection con2; --error ER_LOCK_WAIT_TIMEOUT INSERT INTO t1(id) VALUES(4); ---echo # Connection default connection default; UNLOCK TABLES; @@ -982,16 +923,13 @@ UNLOCK TABLES; connect(con3, localhost, root); ---echo # Connection default connection default; LOCK TABLE t1 READ; ---echo # Connection con3 connection con3; --echo # Sending: --send FLUSH TABLES ---echo # Connection con2 connection con2; let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -1000,11 +938,9 @@ let $wait_condition= --error ER_LOCK_WAIT_TIMEOUT SELECT * FROM t1; ---echo # Connection default connection default; UNLOCK TABLES; ---echo # Connection con3 connection con3; --echo # Reaping: FLUSH TABLES --reap @@ -1013,17 +949,14 @@ connection con3; --echo # Test 6: Timeouts in I_S queries --echo # ---echo # Connection default connection default; CREATE TABLE t2 (id INT); LOCK TABLE t2 WRITE; ---echo # Connection con3 connection con3; --echo # Sending: --send DROP TABLE t1, t2 ---echo # Connection con2 connection con2; let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -1036,16 +969,13 @@ let $wait_condition= SELECT table_name, table_comment FROM information_schema.tables WHERE table_schema= 'test' AND table_name= 't1'; ---echo # Connection default connection default; UNLOCK TABLES; ---echo # Connection con3 connection con3; --echo # Reaping: DROP TABLE t1, t2 --reap ---echo # Connection default connection default; --echo # Cleanup disconnect con2; @@ -1064,12 +994,10 @@ connect (con2, localhost, root, , ); connection default; create table t3 (i int); ---echo # Switching to connection 'con1' connection con1; --echo # Lock 't3' so upcoming RENAME is blocked. lock table t3 read; ---echo # Switching to connection 'con2' connection con2; --echo # Remember ID for this connection. let $ID= `select connection_id()`; @@ -1078,7 +1006,6 @@ let $ID= `select connection_id()`; --echo # Sending: --send rename tables t1 to t2, t2 to t3; ---echo # Switching to connection 'default' connection default; --echo # Wait until RENAME TABLE is blocked on table 't3'. let $wait_condition= @@ -1090,17 +1017,14 @@ let $wait_condition= --replace_result $ID ID eval kill query $ID; ---echo # Switching to connection 'con2' connection con2; --echo # RENAME TABLE should be aborted but should not crash. --error ER_QUERY_INTERRUPTED --reap ---echo # Switching to connection 'con1' connection con1; unlock tables; ---echo # Switching to connection 'default' connection default; disconnect con1; disconnect con2; @@ -1120,13 +1044,11 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (id INT); LOCK TABLE t1 WRITE; ---echo # Connection con1 connect (con1, localhost, root); CREATE TEMPORARY TABLE t1 (id INT); # This alter should not block and timeout. ALTER TABLE t1 ADD COLUMN j INT; ---echo # Connection default connection default; disconnect con1; UNLOCK TABLES; diff --git a/mysql-test/t/lock_sync.test b/mysql-test/t/lock_sync.test index ef79cc2c0f4..c090e3a1d93 100644 --- a/mysql-test/t/lock_sync.test +++ b/mysql-test/t/lock_sync.test @@ -231,7 +231,6 @@ let $con_aux1= con1; let $con_aux2= con2; let $table= t1; ---echo # Switch to connection 'con1'. connection con1; --echo # Cache all functions used in the tests below so statements --echo # calling them won't need to open and lock mysql.proc table @@ -259,7 +258,6 @@ show create function f15; show create function f16; show create function f17; --enable_result_log ---echo # Switch back to connection 'default'. connection default; --echo # @@ -301,13 +299,11 @@ let $restore_table= t2; --echo # target table and thus does not take any lock on it. --echo # We check this for completeness of coverage. lock table t1 write; ---echo # Switching to connection 'con1'. connection con1; --echo # This statement should not be blocked. --disable_result_log describe t1; --enable_result_log ---echo # Switching to connection 'default'. connection default; unlock tables; @@ -316,7 +312,6 @@ unlock tables; --echo # --echo # The above is true for SHOW statements as well. lock table t1 write; ---echo # Switching to connection 'con1'. connection con1; --echo # These statements should not be blocked. # The below test for SHOW CREATE TABLE is disabled until bug 52593 @@ -328,7 +323,6 @@ show create table t1; --disable_result_log show keys from t1; --enable_result_log ---echo # Switching to connection 'default'. connection default; unlock tables; @@ -917,12 +911,10 @@ insert into t1 values (1); --echo # the first statement after it acquires TL_WRITE_ALLOW_WRITE lock. select get_lock("lock_bug45143_wait", 0); ---echo # Switch to connection 'con_bug45143_1'. connection con_bug45143_1; --echo # Sending: --send insert into t1 values (get_lock("lock_bug45143_wait", 100)); ---echo # Switch to connection 'con_bug45143_2'. connection con_bug45143_2; --echo # Wait until the above INSERT takes TL_WRITE_ALLOW_WRITE lock on 't1' --echo # and then gets blocked on user lock 'lock_bug45143_wait'. @@ -936,7 +928,6 @@ set debug_sync='thr_multi_lock_after_thr_lock SIGNAL parked WAIT_FOR go'; --echo # Sending: --send select count(*) > 0 from t1 as a, t1 as b for update; ---echo # Switch to connection 'con_bug45143_3'. connection con_bug45143_3; --echo # Wait until the above SELECT ... FOR UPDATE is blocked after --echo # acquiring lock for the the first instance of 't1'. @@ -944,7 +935,6 @@ set debug_sync= 'now WAIT_FOR parked'; --echo # Send LOCK TABLE statement which will try to get TL_WRITE lock on 't1': --send lock table v1 write; ---echo # Switch to connection 'default'. connection default; --echo # Wait until this LOCK TABLES statement starts waiting for table lock. let $wait_condition= select count(*)= 1 from information_schema.processlist @@ -958,17 +948,14 @@ let $wait_condition= select count(*)= 1 from information_schema.processlist --echo # on this table and also there is a thread waiting for a TL_WRITE on it. set debug_sync= 'now SIGNAL go'; ---echo # Switch to connection 'con_bug45143_2'. connection con_bug45143_2; --echo # Reap SELECT ... FOR UPDATE --reap ---echo # Switch to connection 'default'. connection default; --echo # Resume execution of the INSERT statement. select release_lock("lock_bug45143_wait"); ---echo # Switch to connection 'con_bug45143_1'. connection con_bug45143_1; --echo # Reap INSERT statement. --echo # In Statement and Mixed replication mode we get here "Unsafe @@ -979,13 +966,11 @@ connection con_bug45143_1; --enable_warnings ---echo # Switch to connection 'con_bug45143_3'. connection con_bug45143_3; --echo # Reap LOCK TABLES statement. --reap unlock tables; ---echo # Switch to connection 'default'. connection default; --echo # Do clean-up. disconnect con_bug45143_1; @@ -1008,17 +993,14 @@ DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1(id INT); CREATE TABLE t2(id INT); ---echo # Connection con2 connect (con2, localhost, root); START TRANSACTION; SELECT * FROM t1; ---echo # Connection default connection default; --echo # Sending: --send ALTER TABLE t1 ADD COLUMN j INT ---echo # Connection con2 connection con2; let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -1031,7 +1013,6 @@ INSERT INTO t2 SELECT * FROM t1; COMMIT; ---echo # Connection default connection default; --echo # Reaping ALTER TABLE t1 ADD COLUMN j INT --reap @@ -1047,27 +1028,23 @@ disconnect con2; CREATE EVENT e1 ON SCHEDULE EVERY 5 HOUR DO SELECT 1; CREATE EVENT e2 ON SCHEDULE EVERY 5 HOUR DO SELECT 2; ---echo # Connection con1 connect(con1, localhost, root); SET DEBUG_SYNC="before_lock_tables_takes_lock SIGNAL drop WAIT_FOR query"; --echo # Sending: --send DROP EVENT e1; ---echo # Connection default connection default; SET DEBUG_SYNC="now WAIT_FOR drop"; SELECT name FROM mysql.event, INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE definer = VARIABLE_VALUE; SET DEBUG_SYNC="now SIGNAL query"; ---echo # Connection con1 connection con1; --echo # Reaping: DROP EVENT t1 --reap disconnect con1; --source include/wait_until_disconnected.inc ---echo # Connection default connection default; DROP EVENT e2; SET DEBUG_SYNC="RESET"; @@ -1088,26 +1065,22 @@ INSERT INTO t1 VALUES (1), (2); connect (con1, localhost, root); connect (con2, localhost, root); ---echo # Connection con1 connection con1; SET SESSION lock_wait_timeout= 1; SET DEBUG_SYNC= 'ha_admin_open_ltable SIGNAL opti_recreate WAIT_FOR opti_analyze'; --echo # Sending: --send OPTIMIZE TABLE t1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR opti_recreate'; SET DEBUG_SYNC= 'after_lock_tables_takes_lock SIGNAL thrlock WAIT_FOR release_thrlock'; --echo # Sending: --send INSERT INTO t1 VALUES (3) ---echo # Connection default connection default; SET DEBUG_SYNC= 'now WAIT_FOR thrlock'; SET DEBUG_SYNC= 'now SIGNAL opti_analyze'; ---echo # Connection con1 connection con1; --echo # Reaping: OPTIMIZE TABLE t1 --reap @@ -1115,14 +1088,12 @@ SET DEBUG_SYNC= 'now SIGNAL release_thrlock'; disconnect con1; --source include/wait_until_disconnected.inc ---echo # Connection con2 connection con2; --echo # Reaping: INSERT INTO t1 VALUES (3) --reap disconnect con2; --source include/wait_until_disconnected.inc ---echo # Connection default connection default; DROP TABLE t1; SET DEBUG_SYNC= 'RESET'; @@ -1144,7 +1115,6 @@ CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1() = 1; DROP FUNCTION f1; connect(con2, localhost, root); ---echo # Connection con1 connect (con1, localhost, root); # Need to trigger this sync point at least twice in order to # get valgrind test failures without the patch @@ -1152,7 +1122,6 @@ SET DEBUG_SYNC= 'open_tables_after_open_and_process_table SIGNAL opened WAIT_FOR --echo # Sending: --send SHOW CREATE VIEW v1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR opened'; SET DEBUG_SYNC= 'now SIGNAL dropped'; @@ -1160,7 +1129,6 @@ SET DEBUG_SYNC= 'now WAIT_FOR opened'; --echo # Sending: --send FLUSH TABLES ---echo # Connection default connection default; --echo # Waiting for FLUSH TABLES to be blocked. let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist @@ -1168,17 +1136,14 @@ let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist --source include/wait_condition.inc SET DEBUG_SYNC= 'now SIGNAL dropped'; ---echo # Connection con1 connection con1; --echo # Reaping: SHOW CREATE VIEW v1 --reap ---echo # Connection con2 connection con2; --echo # Reaping: FLUSH TABLES --reap ---echo # Connection default connection default; SET DEBUG_SYNC= 'RESET'; DROP VIEW v1; diff --git a/mysql-test/t/log_state.test b/mysql-test/t/log_state.test index 12c7a7fd92b..68e06dfa042 100644 --- a/mysql-test/t/log_state.test +++ b/mysql-test/t/log_state.test @@ -33,9 +33,7 @@ flush logs; show global variables where Variable_name = 'general_log' or Variable_name = 'slow_query_log'; ---echo # Establish connection con1 (user=root) connect (con1,localhost,root,,); ---echo # Switch to connection con1 connection con1; # Please increase @long_query_time if the corresponding selects show an # additional unexpected entry like @@ -48,12 +46,10 @@ set session long_query_time = @long_query_time; select sleep(@long_query_time + 1); --replace_column 1 TIMESTAMP 2 USER_HOST 3 QUERY_TIME 12 THREAD_ID select * from mysql.slow_log where sql_text NOT LIKE '%slow_log%'; ---echo # Switch to connection default connection default; set global slow_query_log= ON; set local slow_query_log= ON; ---echo # Switch to connection con1 connection con1; set session long_query_time = @long_query_time; select sleep(@long_query_time + 1); @@ -64,7 +60,6 @@ select sleep(@long_query_time + 2); --replace_column 1 TIMESTAMP 2 USER_HOST 3 QUERY_TIME 12 THREAD_ID select * from mysql.slow_log where sql_text NOT LIKE '%slow_log%'; ---echo # Switch to connection default connection default; show global variables where Variable_name = 'general_log' or Variable_name = 'slow_query_log'; @@ -328,7 +323,6 @@ SET GLOBAL general_log_file = @old_general_log_file; # Cleanup # # Disconnect must be done last to avoid delayed 'Quit' message in general log ---echo # Close connection con1 disconnect con1; # set back the saved default values connection default; diff --git a/mysql-test/t/mdl_sync.test b/mysql-test/t/mdl_sync.test index 8e809788a08..0b6d6f58013 100644 --- a/mysql-test/t/mdl_sync.test +++ b/mysql-test/t/mdl_sync.test @@ -101,7 +101,6 @@ create table t1 (c1 int); --echo # handler t1 open; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that S, SH, SR and SW locks are compatible with it. handler t1 open t; @@ -128,7 +127,6 @@ unlock tables; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above RENAME is blocked because of S lock. let $wait_condition= @@ -137,29 +135,24 @@ let $wait_condition= info = "rename table t1 to t2"; --source include/wait_condition.inc --echo # ---echo # Switching to connection 'default'. connection default; --echo # Unblock RENAME TABLE. handler t1 close; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping RENAME TABLE. --reap --echo # Restore the original state of the things. rename table t2 to t1; --echo # ---echo # Switching to connection 'default'. connection default; handler t1 open; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that upgrade from SNW to X is blocked by presence of S lock. --echo # Sending: --send alter table t1 add column c2 int; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above ALTER TABLE is blocked because of S lock. let $wait_condition= @@ -168,30 +161,25 @@ let $wait_condition= info = "alter table t1 add column c2 int"; --source include/wait_condition.inc --echo # ---echo # Switching to connection 'default'. connection default; --echo # Unblock ALTER TABLE. handler t1 close; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping ALTER TABLE. --reap --echo # Restore the original state of the things. alter table t1 drop column c2; --echo # ---echo # Switching to connection 'default'. connection default; handler t1 open; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that upgrade from SNRW to X is blocked by presence of S lock. lock table t1 write; --echo # Sending: --send alter table t1 add column c2 int; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above upgrade of SNRW to X in ALTER TABLE is blocked --echo # because of S lock. @@ -201,12 +189,10 @@ let $wait_condition= info = "alter table t1 add column c2 int"; --source include/wait_condition.inc --echo # ---echo # Switching to connection 'default'. connection default; --echo # Unblock ALTER TABLE. handler t1 close; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping ALTER TABLE. --reap @@ -214,7 +200,6 @@ connection mdl_con1; alter table t1 drop column c2; unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # 2) Acquire SH (shared high-priority) lock on the table. @@ -225,7 +210,6 @@ set debug_sync= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish'; --echo # Sending: --send select table_name, table_type, auto_increment, table_comment from information_schema.tables where table_schema='test' and table_name='t1'; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; set debug_sync= 'now WAIT_FOR locked'; --echo # Check that S, SH, SR and SW locks are compatible with it. @@ -253,7 +237,6 @@ unlock tables; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above RENAME is blocked because of SH lock. let $wait_condition= @@ -264,32 +247,27 @@ let $wait_condition= --echo # Unblock RENAME TABLE. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping SELECT ... FROM I_S. --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping RENAME TABLE. --reap --echo # Restore the original state of the things. rename table t2 to t1; --echo # ---echo # Switching to connection 'default'. connection default; set debug_sync= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish'; --echo # Sending: --send select table_name, table_type, auto_increment, table_comment from information_schema.tables where table_schema='test' and table_name='t1'; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; set debug_sync= 'now WAIT_FOR locked'; --echo # Check that upgrade from SNW to X is blocked by presence of SH lock. --echo # Sending: --send alter table t1 add column c2 int; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above ALTER TABLE is blocked because of SH lock. let $wait_condition= @@ -300,24 +278,20 @@ let $wait_condition= --echo # Unblock RENAME TABLE. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping SELECT ... FROM I_S. --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping ALTER TABLE. --reap --echo # Restore the original state of the things. alter table t1 drop column c2; --echo # ---echo # Switching to connection 'default'. connection default; set debug_sync= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish'; --send select table_name, table_type, auto_increment, table_comment from information_schema.tables where table_schema='test' and table_name='t1'; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; set debug_sync= 'now WAIT_FOR locked'; --echo # Check that upgrade from SNRW to X is blocked by presence of S lock. @@ -325,7 +299,6 @@ lock table t1 write; --echo # Sending: --send alter table t1 add column c2 int; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above upgrade of SNRW to X in ALTER TABLE is blocked --echo # because of S lock. @@ -337,12 +310,10 @@ let $wait_condition= --echo # Unblock RENAME TABLE. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping SELECT ... FROM I_S. --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping ALTER TABLE. --reap @@ -350,7 +321,6 @@ connection mdl_con1; alter table t1 drop column c2; unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # @@ -360,7 +330,6 @@ connection default; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that S, SH, SR and SW locks are compatible with it. handler t1 open; @@ -383,7 +352,6 @@ alter table t1 add primary key (c1); --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Check that the above LOCK TABLES is blocked because of SR lock. let $wait_condition= @@ -394,25 +362,21 @@ let $wait_condition= --echo # Unblock LOCK TABLES. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping LOCK TABLES. --reap delete from t1 limit 1; unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that X lock is incompatible with SR lock. --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above RENAME is blocked because of SR lock. let $wait_condition= @@ -421,30 +385,25 @@ let $wait_condition= info = "rename table t1 to t2"; --source include/wait_condition.inc --echo # ---echo # Switching to connection 'default'. connection default; --echo # Unblock RENAME TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping RENAME TABLE. --reap --echo # Restore the original state of the things. rename table t2 to t1; --echo # ---echo # Switching to connection 'default'. connection default; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that upgrade from SNW to X is blocked by presence of SR lock. --echo # Sending: --send alter table t1 add column c2 int; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above ALTER TABLE is blocked because of SR lock. let $wait_condition= @@ -453,12 +412,10 @@ let $wait_condition= info = "alter table t1 add column c2 int"; --source include/wait_condition.inc --echo # ---echo # Switching to connection 'default'. connection default; --echo # Unblock ALTER TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping ALTER TABLE. --reap @@ -469,7 +426,6 @@ alter table t1 drop column c2; --echo # by presence of SR lock because SNRW is incompatible with SR anyway. --echo # --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # @@ -479,7 +435,6 @@ connection default; begin; insert into t1 values (1); --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that S, SH, SR and SW locks are compatible with it. handler t1 open; @@ -503,7 +458,6 @@ alter table t1 add index (not_exist); --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'default'. connection default; --echo # Check that the above ALTER TABLE is blocked because of SW lock. let $wait_condition= @@ -514,24 +468,20 @@ let $wait_condition= --echo # Unblock ALTER TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'default'. connection default; begin; insert into t1 values (1); --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that SNRW lock is not compatible with SW lock. --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Check that the above LOCK TABLES is blocked because of SW lock. let $wait_condition= @@ -542,25 +492,21 @@ let $wait_condition= --echo # Unblock LOCK TABLES. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping LOCK TABLES. --reap delete from t1 limit 2; unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; begin; insert into t1 values (1); --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that X lock is incompatible with SW lock. --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above RENAME is blocked because of SW lock. let $wait_condition= @@ -569,12 +515,10 @@ let $wait_condition= info = "rename table t1 to t2"; --source include/wait_condition.inc --echo # ---echo # Switching to connection 'default'. connection default; --echo # Unblock RENAME TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping RENAME TABLE. --reap @@ -586,7 +530,6 @@ rename table t2 to t1; --echo # with SW anyway. --echo # --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # @@ -597,7 +540,6 @@ set debug_sync= 'alter_opened_table SIGNAL locked WAIT_FOR finish'; --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; set debug_sync= 'now WAIT_FOR locked'; --echo # Check that S, SH, SR and SW locks are compatible with it. @@ -611,7 +553,6 @@ delete from t1 limit 1; --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above ALTER is blocked because of SU lock. let $wait_condition= @@ -622,32 +563,27 @@ let $wait_condition= --echo # Unblock ALTERs. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping first ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping another ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'default'. connection default; set debug_sync= 'alter_opened_table SIGNAL locked WAIT_FOR finish'; --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; set debug_sync= 'now WAIT_FOR locked'; --echo # Check that SNRW lock is incompatible with SU lock. --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above LOCK TABLES is blocked because of SU lock. let $wait_condition= @@ -658,33 +594,28 @@ let $wait_condition= --echo # Unblock ALTER and thus LOCK TABLES. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping LOCK TABLES --reap insert into t1 values (1); unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; set debug_sync= 'alter_opened_table SIGNAL locked WAIT_FOR finish'; --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; set debug_sync= 'now WAIT_FOR locked'; --echo # Check that X lock is incompatible with SU lock. --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above RENAME is blocked because of SU lock. let $wait_condition= @@ -695,7 +626,6 @@ let $wait_condition= --echo # Unblock ALTER and thus RENAME TABLE. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Now we have ALTER TABLE with SU->SNW and RENAME TABLE with pending --echo # X-lock. In this case ALTER TABLE should be chosen as victim. @@ -703,7 +633,6 @@ connection default; --error ER_LOCK_DEADLOCK --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping RENAME TABLE --reap @@ -714,7 +643,6 @@ rename table t2 to t1; --echo # blocked by presence of another SU lock because SNW/SNRW is --echo # incompatible with SU anyway. --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # @@ -725,7 +653,6 @@ set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR fini --echo # Sending: --send alter table t1 add primary key (c1), lock=shared, algorithm=copy; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; set debug_sync= 'now WAIT_FOR locked'; --echo # Check that S, SH and SR locks are compatible with it. @@ -738,7 +665,6 @@ select count(*) from t1; --echo # Sending: --send delete from t1 limit 2; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above DELETE is blocked because of SNW lock. let $wait_condition= @@ -749,31 +675,26 @@ let $wait_condition= --echo # Unblock ALTER and thus DELETE. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping DELETE. --reap --echo # ---echo # Switching to connection 'default'. connection default; set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR finish'; --echo # Sending: --send alter table t1 add primary key (c1), lock=shared, algorithm=copy; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; set debug_sync= 'now WAIT_FOR locked'; --echo # Check that SU lock is incompatible with SNW lock. --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above ALTER is blocked because of SNW lock. let $wait_condition= @@ -784,13 +705,11 @@ let $wait_condition= --echo # Unblock ALTERs. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping first ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping another ALTER TABLE. --error ER_DUP_ENTRY @@ -800,20 +719,17 @@ connection mdl_con1; --echo # SNW is only used by ALTER TABLE after upgrading from SU --echo # and SU is also incompatible with SNW. --echo # ---echo # Switching to connection 'default'. connection default; set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR finish'; --echo # Sending: --send alter table t1 add primary key (c1), lock=shared, algorithm=copy; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; set debug_sync= 'now WAIT_FOR locked'; --echo # Check that SNRW lock is incompatible with SNW lock. --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above LOCK TABLES is blocked because of SNW lock. let $wait_condition= @@ -824,33 +740,28 @@ let $wait_condition= --echo # Unblock ALTER and thus LOCK TABLES. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping LOCK TABLES --reap insert into t1 values (1); unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR finish'; --echo # Sending: --send alter table t1 add primary key (c1), algorithm=copy, lock=shared; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; set debug_sync= 'now WAIT_FOR locked'; --echo # Check that X lock is incompatible with SNW lock. --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above RENAME is blocked because of SNW lock. let $wait_condition= @@ -861,13 +772,11 @@ let $wait_condition= --echo # Unblock ALTER and thus RENAME TABLE. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping RENAME TABLE --reap @@ -878,7 +787,6 @@ rename table t2 to t1; --echo # blocked by presence of another SNW lock because SNW/SNRW is --echo # incompatible with SNW anyway. --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # @@ -887,7 +795,6 @@ connection default; --echo # lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that S and SH locks are compatible with it. handler t1 open; @@ -898,7 +805,6 @@ select column_name from information_schema.columns where --echo # Sending: --send select count(*) from t1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Check that the above SELECT is blocked because of SNRW lock. let $wait_condition= @@ -909,22 +815,18 @@ let $wait_condition= --echo # Unblock SELECT. unlock tables; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping SELECT. --reap --echo # ---echo # Switching to connection 'default'. connection default; lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that SW lock is incompatible with SNRW lock. --echo # Sending: --send delete from t1 limit 1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Check that the above DELETE is blocked because of SNRW lock. let $wait_condition= @@ -935,22 +837,18 @@ let $wait_condition= --echo # Unblock DELETE. unlock tables; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping DELETE. --reap --echo # ---echo # Switching to connection 'default'. connection default; lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that SU lock is incompatible with SNRW lock. --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'default'. connection default; --echo # Check that the above ALTER is blocked because of SNRW lock. let $wait_condition= @@ -961,7 +859,6 @@ let $wait_condition= --echo # Unblock ALTER. unlock tables; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping ALTER TABLE. --error ER_DUP_ENTRY @@ -971,17 +868,14 @@ connection mdl_con1; --echo # SNW is only used by ALTER TABLE after upgrading from SU --echo # and SU is also incompatible with SNRW. --echo # ---echo # Switching to connection 'default'. connection default; lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that SNRW lock is incompatible with SNRW lock. --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Check that the above LOCK TABLES is blocked because of SNRW lock. let $wait_condition= @@ -992,24 +886,20 @@ let $wait_condition= --echo # Unblock waiting LOCK TABLES. unlock tables; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping LOCK TABLES --reap insert into t1 values (1); unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that X lock is incompatible with SNRW lock. --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Check that the above RENAME is blocked because of SNRW lock. let $wait_condition= @@ -1020,7 +910,6 @@ let $wait_condition= --echo # Unblock RENAME TABLE unlock tables; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping RENAME TABLE --reap @@ -1031,7 +920,6 @@ rename table t2 to t1; --echo # blocked by presence of another SNRW lock because SNW/SNRW is --echo # incompatible with SNRW anyway. --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # @@ -1040,18 +928,15 @@ connection default; --echo # create table t2 (c1 int); --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Take a lock on t2, so RENAME TABLE t1 TO t2 will get blocked --echo # after acquiring X lock on t1. lock tables t2 read; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME has acquired X lock on t1 and is waiting for t2. let $wait_condition= @@ -1063,7 +948,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send handler t1 open; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above HANDLER statement is blocked because of X lock. let $wait_condition= @@ -1074,29 +958,24 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping HANDLER. --reap handler t1 close; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Prepare for blocking RENAME TABLE. lock tables t2 read; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME has acquired X lock on t1 and is waiting for t2. let $wait_condition= @@ -1108,7 +987,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send select column_name from information_schema.columns where table_schema='test' and table_name='t1'; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above SELECT ... FROM I_S ... statement is blocked --echo # because of X lock. @@ -1120,28 +998,23 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping SELECT ... FROM I_S. --reap --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Prepare for blocking RENAME TABLE. lock tables t2 read; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME has acquired X lock on t1 and is waiting for t2. let $wait_condition= @@ -1153,7 +1026,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above SELECT statement is blocked --echo # because of X lock. @@ -1165,28 +1037,23 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping SELECT. --reap --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Prepare for blocking RENAME TABLE. lock tables t2 read; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME has acquired X lock on t1 and is waiting for t2. let $wait_condition= @@ -1198,7 +1065,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send delete from t1 limit 1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above DELETE statement is blocked --echo # because of X lock. @@ -1210,28 +1076,23 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping DELETE. --reap --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Prepare for blocking RENAME TABLE. lock tables t2 read; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME has acquired X lock on t1 and is waiting for t2. let $wait_condition= @@ -1243,7 +1104,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above ALTER statement is blocked --echo # because of X lock. @@ -1255,13 +1115,11 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping ALTER. --error ER_DUP_ENTRY @@ -1271,17 +1129,14 @@ connection mdl_con1; --echo # SNW is only used by ALTER TABLE after upgrading from SU --echo # and SU is also incompatible with X. --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Prepare for blocking RENAME TABLE. lock tables t2 read; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME has acquired X lock on t1 and is waiting for t2. let $wait_condition= @@ -1293,7 +1148,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above LOCK TABLE statement is blocked --echo # because of X lock. @@ -1305,29 +1159,24 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping LOCK TABLE. --reap unlock tables; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Prepare for blocking RENAME TABLE. lock tables t2 read; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME has acquired X lock on t1 and is waiting for t2. let $wait_condition= @@ -1339,7 +1188,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send rename table t1 to t3; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above RENAME statement is blocked --echo # because of X lock. @@ -1351,13 +1199,11 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping RENAME. --reap @@ -1373,7 +1219,6 @@ rename table t3 to t1; --echo # --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # --echo # 1) Check compatibility for pending SNW lock. @@ -1382,13 +1227,11 @@ connection mdl_con2; begin; insert into t1 values (1); --echo # ---echo # Switching to connection 'default'. connection default; --echo # Add pending SNW lock. --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that ALTER TABLE is waiting with pending SNW lock. let $wait_condition= @@ -1406,7 +1249,6 @@ select count(*) from t1; --echo # Sending: --send delete from t1 limit 1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above DELETE is blocked because of pending SNW lock. let $wait_condition= @@ -1417,13 +1259,11 @@ where state = "Waiting for table metadata lock" and --echo # Unblock ALTER TABLE. commit; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping ALTER. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping DELETE. --reap @@ -1432,7 +1272,6 @@ connection mdl_con1; --echo # they will also be blocked by active SW lock. --echo # --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # --echo # 2) Check compatibility for pending SNRW lock. @@ -1441,13 +1280,11 @@ connection mdl_con2; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Add pending SNRW lock. --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that LOCK TABLE is waiting with pending SNRW lock. let $wait_condition= @@ -1464,7 +1301,6 @@ select column_name from information_schema.columns where --echo # Sending: --send select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above SELECT is blocked because of pending SNRW lock. let $wait_condition= @@ -1475,29 +1311,24 @@ where state = "Waiting for table metadata lock" and --echo # Unblock LOCK TABLE. commit; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping LOCK TABLE. --reap unlock tables; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping SELECT. --reap --echo # Restore pending SNRW lock. --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that LOCK TABLE is waiting with pending SNRW lock. let $wait_condition= @@ -1509,7 +1340,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send insert into t1 values (1); --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above INSERT is blocked because of pending SNRW lock. let $wait_condition= @@ -1520,29 +1350,24 @@ where state = "Waiting for table metadata lock" and --echo # Unblock LOCK TABLE. commit; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping LOCK TABLE. --reap unlock tables; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping INSERT. --reap --echo # Restore pending SNRW lock. --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that LOCK TABLE is waiting with pending SNRW lock. let $wait_condition= @@ -1555,12 +1380,10 @@ where state = "Waiting for table metadata lock" and --error ER_DUP_ENTRY alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Unblock LOCK TABLE. commit; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping LOCK TABLE. --reap @@ -1570,7 +1393,6 @@ unlock tables; --echo # they will also be blocked by active SR lock. --echo # --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # --echo # 3) Check compatibility for pending X lock. @@ -1579,13 +1401,11 @@ connection mdl_con2; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Add pending X lock. --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME TABLE is waiting with pending X lock. let $wait_condition= @@ -1600,7 +1420,6 @@ select column_name from information_schema.columns where --echo # Sending: --send handler t1 open; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above HANDLER OPEN is blocked because of pending X lock. let $wait_condition= @@ -1611,31 +1430,26 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE. commit; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping HANDLER t1 OPEN. --reap handler t1 close; --echo # Restore pending X lock. --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Add pending X lock. --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME TABLE is waiting with pending X lock. let $wait_condition= @@ -1647,7 +1461,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above SELECT is blocked because of pending X lock. let $wait_condition= @@ -1658,30 +1471,25 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE. commit; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping SELECT. --reap --echo # Restore pending X lock. --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Add pending X lock. --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME TABLE is waiting with pending X lock. let $wait_condition= @@ -1693,7 +1501,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send delete from t1 limit 1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above DELETE is blocked because of pending X lock. let $wait_condition= @@ -1704,30 +1511,25 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE. commit; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping DELETE. --reap --echo # Restore pending X lock. --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Add pending X lock. --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME TABLE is waiting with pending X lock. let $wait_condition= @@ -1739,7 +1541,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above ALTER TABLE is blocked because of pending X lock. let $wait_condition= @@ -1750,30 +1551,25 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE. commit; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # Restore pending X lock. --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; handler t1 open; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Add pending X lock. --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that RENAME TABLE is waiting with pending X lock. let $wait_condition= @@ -1785,7 +1581,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'mdl_con3'. connection mdl_con3; --echo # Check that the above LOCK TABLES is blocked because of pending X lock. let $wait_condition= @@ -1794,24 +1589,20 @@ where state = "Waiting for table metadata lock" and info = "lock table t1 write"; --source include/wait_condition.inc --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Unblock RENAME TABLE. handler t1 close; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reaping LOCK TABLES. --reap unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # @@ -1833,7 +1624,6 @@ connection default; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Create an active SNW lock on t2. --echo # We have to use DEBUG_SYNC facility as otherwise SNW lock @@ -1843,7 +1633,6 @@ set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR fini --echo # Sending: --send alter table t2 add primary key (c1), algorithm=copy, lock=shared; --echo # ---echo # Switching to connection 'default'. connection default; set debug_sync= 'now WAIT_FOR locked'; --echo # SR lock should be acquired without any waiting. @@ -1855,7 +1644,6 @@ select count(*) from t1; --echo # Sending: --send insert into t2 values (1); --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above INSERT is blocked. let $wait_condition= @@ -1866,13 +1654,11 @@ where state = "Waiting for table metadata lock" and --echo # Unblock ALTER TABLE and thus INSERT. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap INSERT. --reap @@ -1887,14 +1673,12 @@ commit; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Create an active SNW lock on t1. set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL locked WAIT_FOR finish'; --echo # Sending: --send alter table t1 add primary key (c1), algorithm=copy, lock=shared; --echo # ---echo # Switching to connection 'default'. connection default; set debug_sync= 'now WAIT_FOR locked'; --echo # We should still be able to get SR lock without waiting. @@ -1905,7 +1689,6 @@ select count(*) from t1; --echo # Sending: --send insert into t1 values (1); --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above INSERT is blocked. let $wait_condition= @@ -1916,13 +1699,11 @@ where state = "Waiting for table metadata lock" and --echo # Unblock ALTER TABLE and thus INSERT. set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap INSERT. --reap @@ -1935,13 +1716,11 @@ commit; begin; insert into t1 values (1); --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Create pending SNW lock on t1. --echo # Sending: --send alter table t1 add primary key (c1); --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER TABLE starts waiting for SNW lock. let $wait_condition= @@ -1955,13 +1734,11 @@ delete from t1 limit 1; --echo # Unblock ALTER TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap ALTER TABLE. --error ER_DUP_ENTRY --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # 2) Now similar tests for active SNW lock which is being upgraded @@ -1972,20 +1749,17 @@ connection default; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Start transaction which will prevent SNW -> X upgrade from --echo # completing immediately. begin; select count(*) from t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Create SNW lock pending upgrade to X on t2. --echo # Sending: --send alter table t2 add column c2 int; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER TABLE starts waiting X lock. let $wait_condition= @@ -1997,7 +1771,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send select count(*) from t2; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above SELECT is blocked. let $wait_condition= @@ -2008,12 +1781,10 @@ where state = "Waiting for table metadata lock" and --echo # Unblock ALTER TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap ALTER TABLE. --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap SELECT. --reap @@ -2022,20 +1793,17 @@ commit; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Start transaction which will prevent SNW -> X upgrade from --echo # completing immediately. begin; select count(*) from t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Create SNW lock pending upgrade to X on t2. --echo # Sending: --send alter table t2 drop column c2; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER TABLE starts waiting X lock. let $wait_condition= @@ -2047,7 +1815,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send insert into t2 values (1); --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above INSERT is blocked. let $wait_condition= @@ -2058,12 +1825,10 @@ where state = "Waiting for table metadata lock" and --echo # Unblock ALTER TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap ALTER TABLE. --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap INSERT. --reap @@ -2075,13 +1840,11 @@ commit; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Create SNW lock pending upgrade to X. --echo # Sending: --send alter table t1 add column c2 int; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER TABLE starts waiting X lock. let $wait_condition= @@ -2098,12 +1861,10 @@ delete from t1 limit 1; --echo # Unblock ALTER TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap ALTER TABLE. --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # 3) Check how various locks used within transactional context @@ -2114,18 +1875,15 @@ connection default; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; lock table t2 write; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Attempt to acquire SR should be blocked. It should --echo # not cause errors as it does not creates deadlock. --echo # Sending: --send select count(*) from t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that the above SELECT is blocked let $wait_condition= @@ -2136,7 +1894,6 @@ where state = "Waiting for table metadata lock" and --echo # Unblock SELECT. unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap SELECT. --reap @@ -2145,18 +1902,15 @@ commit; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; lock table t2 write; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Again attempt to acquire SW should be blocked and should --echo # not cause any errors. --echo # Sending: --send delete from t2 limit 1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Check that the above DELETE is blocked let $wait_condition= @@ -2167,7 +1921,6 @@ where state = "Waiting for table metadata lock" and --echo # Unblock DELETE. unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap DELETE. --reap @@ -2182,12 +1935,10 @@ commit; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until LOCK TABLE is blocked creating pending request for X lock. let $wait_condition= @@ -2204,13 +1955,11 @@ delete from t1 limit 1; --echo # Unblock LOCK TABLES. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap LOCK TABLES. --reap unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # **) Now case when transaction has a SW lock. @@ -2218,12 +1967,10 @@ connection default; begin; delete from t1 limit 1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Sending: --send lock table t1 write; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until LOCK TABLE is blocked creating pending request for X lock. let $wait_condition= @@ -2238,13 +1985,11 @@ insert into t1 values (1, 1); --echo # Unblock LOCK TABLES. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap LOCK TABLES. --reap unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # 4) Check how various locks used within transactional context @@ -2255,20 +2000,17 @@ connection default; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Start transaction which will prevent X lock from going away --echo # immediately. begin; select count(*) from t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Create pending X lock on t2. --echo # Sending: --send rename table t2 to t3; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until RENAME TABLE starts waiting with pending X lock. let $wait_condition= @@ -2280,7 +2022,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send select count(*) from t2; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above SELECT is blocked. let $wait_condition= @@ -2291,12 +2032,10 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap RENAME TABLE. --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap SELECT. --error ER_NO_SUCH_TABLE @@ -2307,20 +2046,17 @@ rename table t3 to t2; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Start transaction which will prevent X lock from going away --echo # immediately. begin; select count(*) from t2; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Create pending X lock on t2. --echo # Sending: --send rename table t2 to t3; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until RENAME TABLE starts waiting with pending X lock. let $wait_condition= @@ -2332,7 +2068,6 @@ where state = "Waiting for table metadata lock" and --echo # Sending: --send delete from t2 limit 1; --echo # ---echo # Switching to connection 'mdl_con2'. connection mdl_con2; --echo # Check that the above DELETE is blocked. let $wait_condition= @@ -2343,12 +2078,10 @@ where state = "Waiting for table metadata lock" and --echo # Unblock RENAME TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap RENAME TABLE. --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap DELETE. --error ER_NO_SUCH_TABLE @@ -2365,12 +2098,10 @@ rename table t3 to t2; begin; select count(*) from t1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until RENAME TABLE is blocked creating pending request for X lock. let $wait_condition= @@ -2387,13 +2118,11 @@ delete from t1 limit 1; --echo # Unblock RENAME TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # **) The second case is when transaction has a SW lock. @@ -2401,12 +2130,10 @@ connection default; begin; delete from t1 limit 1; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Sending: --send rename table t1 to t2; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until RENAME TABLE is blocked creating pending request for X lock. let $wait_condition= @@ -2421,13 +2148,11 @@ insert into t1 values (1, 1); --echo # Unblock RENAME TABLE. commit; --echo # ---echo # Switching to connection 'mdl_con1'. connection mdl_con1; --echo # Reap RENAME TABLE. --error ER_TABLE_EXISTS_ERROR --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # Clean-up. @@ -2460,14 +2185,12 @@ insert into t1 values (1); --echo # handler t1 open; --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; lock table t1 write; --echo # Upgrade SNRW to X lock. --echo # Sending: --send alter table t1 add column j int; --echo # ---echo # Switching to connection 'handler_con2'. connection handler_con2; --echo # Wait until ALTER is blocked during upgrade. let $wait_condition= @@ -2476,18 +2199,15 @@ let $wait_condition= info = "alter table t1 add column j int"; --source include/wait_condition.inc --echo # ---echo # Switching to connection 'default'. connection default; --echo # The below statement should not cause deadlock. --send handler t1 read first; --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; --echo # Reap ALTER TABLE. --reap unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap HANDLER READ. --reap @@ -2500,18 +2220,15 @@ handler t1 close; --echo # handler t1 open; --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; lock table t1 write, t2 read; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Execute statement which will be blocked on table-level lock --echo # owned by connection 'handler_con1'. --echo # Sending: --send insert into t2 values (1); --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; --echo # Wait until INSERT is blocked on table-level lock. let $wait_condition= @@ -2522,7 +2239,6 @@ let $wait_condition= --echo # Sending 'alter table t1 drop column j'. It should not cause --echo # deadlock. send alter table t1 drop column j; ---echo # Switching to connection 'handler_con2'. connection handler_con2; --echo # Wait until ALTER is blocked during upgrade. let $wait_condition= @@ -2531,19 +2247,16 @@ let $wait_condition= info = "alter table t1 drop column j"; --source include/wait_condition.inc --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap INSERT. --error ER_LOCK_ABORTED --reap handler t1 close; --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; --echo # Reaping 'alter table t1 drop column j' --reap unlock tables; ---echo # Switching to connection 'default'. connection default; --echo # Then, check the scenario in which upgrade of SNRW lock to X @@ -2552,17 +2265,14 @@ connection default; --echo # handler t1 open; --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; lock table t1 write; --echo # ---echo # Switching to connection 'default'. connection default; --echo # The below insert should be blocked because active SNRW lock on 't1'. --echo # Sending: --send insert into t1 values (1); --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; --echo # Wait until INSERT is blocked because of SNRW lock. let $wait_condition= @@ -2574,7 +2284,6 @@ let $wait_condition= --echo # Sending: --send alter table t1 add column j int; --echo # ---echo # Switching to connection 'default'. connection default; --echo # INSERT should be chosen as victim for resolving deadlock. --echo # Reaping INSERT. @@ -2583,13 +2292,11 @@ connection default; --echo # Close HANDLER to unblock ALTER TABLE. handler t1 close; --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; --echo # Reaping ALTER TABLE. --reap unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # @@ -2599,17 +2306,14 @@ connection default; --echo # handler t1 open; --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; lock table t1 write, t2 write; --echo # ---echo # Switching to connection 'default'. connection default; --echo # The below insert should be blocked because active SNRW lock on 't1'. --echo # Sending: --send insert into t2 values (1); --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; --echo # Wait until INSERT is blocked because of SNRW lock. let $wait_condition= @@ -2621,7 +2325,6 @@ let $wait_condition= --echo # Sending: --send alter table t1 drop column j; --echo # ---echo # Switching to connection 'default'. connection default; --echo # INSERT should be chosen as victim for resolving deadlock. --echo # Reaping INSERT. @@ -2630,13 +2333,11 @@ connection default; --echo # Close HANDLER to unblock ALTER TABLE. handler t1 close; --echo # ---echo # Switching to connection 'handler_con1'. connection handler_con1; --echo # Reaping ALTER TABLE. --reap unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Clean-up. @@ -2668,25 +2369,21 @@ create table t4 (k int); --echo # --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; begin; insert into t1 values (1); --echo # ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; begin; insert into t2 values (1); --echo # ---echo # Switching to connection 'default'. connection default; --echo # Send: --send rename table t2 to t0, t3 to t2, t0 to t3; --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Wait until the above RENAME TABLE is blocked because it has to wait --echo # for 'deadlock_con2' which holds shared metadata lock on 't2'. @@ -2702,7 +2399,6 @@ let $wait_condition= --send select * from t2; --echo # ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Wait until the above SELECT * FROM t2 is starts waiting --echo # for an exclusive metadata lock to go away. @@ -2716,19 +2412,16 @@ let $wait_condition= commit; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap RENAME TABLE. --reap --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Reap SELECT. --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # --echo # Let us check that in the process of waiting for conflicting lock @@ -2738,7 +2431,6 @@ connection default; --send rename table t1 to t0, t3 to t1, t0 to t3; --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Wait until the above RENAME TABLE is blocked because it has to wait --echo # for 'deadlock_con1' which should still hold shared metadata lock on @@ -2752,7 +2444,6 @@ let $wait_condition= commit; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap RENAME TABLE. --reap @@ -2762,19 +2453,16 @@ connection default; --echo # --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; begin; insert into t2 values (2); --echo # ---echo # Switching to connection 'default'. connection default; --echo # Send: --send rename table t2 to t0, t1 to t2, t0 to t1; --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Wait until the above RENAME TABLE is blocked because it has to wait --echo # for 'deadlock_con1' which holds shared metadata lock on 't2'. @@ -2791,7 +2479,6 @@ let $wait_condition= select * from t1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap RENAME TABLE. --reap @@ -2801,18 +2488,15 @@ connection default; --echo # --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; begin; insert into t2 values (1); --echo # ---echo # Switching to connection 'default'. connection default; lock table t1 write; --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # The below SELECT statement should wait for metadata lock --echo # on table 't1' and should not produce ER_LOCK_DEADLOCK @@ -2820,7 +2504,6 @@ connection deadlock_con1; --send select * from t1; --echo # ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Wait until the above SELECT * FROM t1 is starts waiting --echo # for an UNRW metadata lock to go away. @@ -2834,7 +2517,6 @@ let $wait_condition= --send rename table t1 to t0, t2 to t1, t0 to t2; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait till above RENAME TABLE is blocked while holding --echo # pending X lock on t1. @@ -2848,7 +2530,6 @@ let $wait_condition= unlock tables; --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Since the latest RENAME TABLE entered in deadlock with SELECT --echo # statement the latter should be aborted and emit ER_LOCK_DEADLOCK @@ -2858,13 +2539,11 @@ connection deadlock_con1; --reap --echo # ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Reap RENAME TABLE ... . --reap; --echo # ---echo # Switching to connection 'default'. connection default; drop tables t1, t2, t3, t4; @@ -2881,19 +2560,16 @@ insert into t1 values (1); select * from t1; --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; begin; select * from t1; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Send: --send alter table t1 add column j int, rename to t2; --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Wait until the above ALTER TABLE ... RENAME acquires exclusive --echo # metadata lock on 't2' and starts waiting for connection @@ -2911,7 +2587,6 @@ let $wait_condition= select * from t2; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap ALTER TABLE ... RENAME. --reap @@ -2935,7 +2610,6 @@ set debug_sync= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish'; --send select * from t2, t1 --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Wait till SELECT acquires MDL on 't2' and starts waiting for signal. set debug_sync= 'now WAIT_FOR locked'; @@ -2943,7 +2617,6 @@ set debug_sync= 'now WAIT_FOR locked'; --send lock tables t1 write, t2 write --echo # ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Wait until LOCK TABLES acquires SNRW lock on 't1' and is blocked --echo # while trying to acquire SNRW lock on 't1'. @@ -2956,14 +2629,12 @@ let $wait_condition= set debug_sync= 'now SIGNAL finish'; --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Reaping LOCK TABLES. --reap unlock tables; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping SELECT. It succeed and not report ER_LOCK_DEADLOCK error. --reap @@ -2983,7 +2654,6 @@ set debug_sync='alter_table_copy_after_lock_upgrade SIGNAL parked1 WAIT_FOR go1' --send alter table t1 add column j int --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Wait till ALTER acquires SNW lock and stops. set debug_sync='now WAIT_FOR parked1'; @@ -2995,7 +2665,6 @@ set debug_sync='mdl_acquire_lock_wait SIGNAL parked2 WAIT_FOR go2'; --send insert into t1 values () --echo # ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Wait till INSERT is paused. set debug_sync='now WAIT_FOR parked2'; @@ -3005,7 +2674,6 @@ set debug_sync='now WAIT_FOR parked2'; set debug_sync='now SIGNAL go1'; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping ALTER TABLE. --reap @@ -3014,7 +2682,6 @@ connection default; --send alter table t1 drop column j --echo # ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Wait until ALTER is blocked. let $wait_condition= @@ -3035,13 +2702,11 @@ let $wait_condition= set debug_sync='now SIGNAL go2'; --echo # ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Reaping INSERT. --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reaping ALTER. It should succeed and not produce ER_LOCK_DEADLOCK. --reap @@ -3063,7 +2728,6 @@ create table t2(j int); --echo # set debug_sync= 'RESET'; ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Start a statement, which will acquire SR metadata lock on t1, open it --echo # and then stop, before trying to acquire SW lock on t2 and opening it. @@ -3071,7 +2735,6 @@ set debug_sync='open_tables_after_open_and_process_table SIGNAL parked WAIT_FOR --echo # Sending: --send select * from t1 where i in (select j from t2 for update) ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Wait till the above SELECT stops. set debug_sync='now WAIT_FOR parked'; @@ -3080,7 +2743,6 @@ set debug_sync='now WAIT_FOR parked'; --echo # Sending: send flush tables t1, t2 with read lock; ---echo # Switching to connection 'deadlock_con3'. connection deadlock_con3; --echo # Wait until FLUSH TABLES WITH t1, t2 READ LOCK starts waiting --echo # for SELECT to close t1. @@ -3095,13 +2757,11 @@ let $wait_condition= --echo # by backing-off SELECT. As a result FTWRL should be able to finish. set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Reap FLUSH TABLES WITH READ LOCK. reap; unlock tables; ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Reap SELECT. reap; @@ -3113,7 +2773,6 @@ reap; --echo # set debug_sync= 'RESET'; ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; set debug_sync='flush_tables_with_read_lock_after_acquire_locks SIGNAL parked WAIT_FOR go'; @@ -3122,7 +2781,6 @@ set debug_sync='flush_tables_with_read_lock_after_acquire_locks SIGNAL parked WA --echo # Sending: send flush tables t1, t2 with read lock; ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Wait till FLUSH TABLE WITH READ LOCK stops. set debug_sync='now WAIT_FOR parked'; @@ -3132,7 +2790,6 @@ set debug_sync='now WAIT_FOR parked'; --echo # Sending: send select * from t1 where i in (select j from t2 for update); ---echo # Switching to connection 'deadlock_con3'. connection deadlock_con3; --echo # Wait till the above SELECT blocks. let $wait_condition= @@ -3146,13 +2803,11 @@ let $wait_condition= --echo # backing-off SELECT. As a result FTWRL should be able to finish. set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Reap FLUSH TABLES WITH READ LOCK. reap; unlock tables; ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Reap SELECT. reap; @@ -3163,7 +2818,6 @@ reap; --echo # set debug_sync= 'RESET'; ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Start a statement which will acquire SR metadata lock on t2, open it --echo # and then stop, before trying to acquire SR on t1 and opening it. @@ -3171,7 +2825,6 @@ set debug_sync='open_tables_after_open_and_process_table SIGNAL parked WAIT_FOR --echo # Sending: send select * from t2, t1; ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Wait till the above SELECT stops. set debug_sync='now WAIT_FOR parked'; @@ -3180,7 +2833,6 @@ set debug_sync='now WAIT_FOR parked'; --echo # Sending: send flush tables t2 with read lock; ---echo # Switching to connection 'deadlock_con3'. connection deadlock_con3; --echo # Wait until FLUSH TABLES WITH READ LOCK starts waiting --echo # for SELECT to close t2. @@ -3195,7 +2847,6 @@ let $wait_condition= --echo # Sending: send drop tables t1, t2; ---echo # Switching to connection 'default'. connection default; --echo # Wait until DROP TABLES starts waiting for X lock on t2. let $wait_condition= @@ -3209,25 +2860,21 @@ let $wait_condition= --echo # by backing-off SELECT. As a result, FTWRL should be able to finish. set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'deadlock_con2'. connection deadlock_con2; --echo # Reap FLUSH TABLES WITH READ LOCK. reap; --echo # Unblock DROP TABLES. unlock tables; ---echo # Switching to connection 'deadlock_con3'. connection deadlock_con3; --echo # Reap DROP TABLES. reap; ---echo # Switching to connection 'deadlock_con1'. connection deadlock_con1; --echo # Reap SELECT. It should emit error about missing table. --error ER_NO_SUCH_TABLE reap; ---echo # Switching to connection 'default'. connection default; set debug_sync= 'RESET'; @@ -3251,7 +2898,6 @@ set debug_sync= 'RESET'; create table t1(i int); create table t2(j int); ---echo # Switching to connection 'con2'. connection con2; set debug_sync='open_tables_after_open_and_process_table SIGNAL parked WAIT_FOR go'; @@ -3261,7 +2907,6 @@ set debug_sync='open_tables_after_open_and_process_table SIGNAL parked WAIT_FOR --echo # Sending: send flush tables t1, t2 with read lock; ---echo # Switching to connection 'con1'. connection con1; --echo # Wait till FLUSH TABLES <list> WITH READ LOCK stops. set debug_sync='now WAIT_FOR parked'; @@ -3271,7 +2916,6 @@ set debug_sync='now WAIT_FOR parked'; --echo # Sending: send flush tables; ---echo # Switching to connection 'default'. connection default; --echo # Wait till the above FLUSH TABLES blocks. let $wait_condition= @@ -3286,19 +2930,16 @@ let $wait_condition= --echo # which would result in assertion failures. set debug_sync='now SIGNAL go'; ---echo # Switching to connection 'con2'. connection con2; --echo # Reap FLUSH TABLES <list> WITH READ LOCK. reap; unlock tables; ---echo # Switching to connection 'con1'. connection con1; --echo # Reap FLUSH TABLES. reap; --echo # Clean-up. ---echo # Switching to connection 'default'. connection default; drop tables t1, t2; set debug_sync= 'RESET'; @@ -3328,16 +2969,13 @@ create trigger t1_bi before insert on t1 for each row create trigger t2_bi before insert on t2 for each row insert into t3 values (new.j); --echo # ---echo # Switching to connection 'con1root'. connection con1root; lock tables t4 read; --echo # ---echo # Switching to connection 'con2root'. connection con2root; --echo # Send : --send rename table t3 to t5, t4 to t3; --echo # ---echo # Switching to connection 'default'. connection default; --echo # Wait until the above RENAME TABLE adds pending requests for exclusive --echo # metadata lock on its tables and blocks due to 't4' being used by LOCK @@ -3349,7 +2987,6 @@ let $wait_condition= select count(*)= 1 from information_schema.processlist --echo # Send : --send insert into t1 values (1); --echo # ---echo # Switching to connection 'con1root'. connection con1root; --echo # Wait until INSERT statement waits due to encountering pending --echo # exclusive metadata lock on 't3'. @@ -3359,12 +2996,10 @@ let $wait_condition= select count(*)= 1 from information_schema.processlist --source include/wait_condition.inc unlock tables; --echo # ---echo # Switching to connection 'con2root'. connection con2root; --echo # Reap RENAME TABLE. --reap --echo # ---echo # Switching to connection 'default'. connection default; --echo # Reap INSERT. --reap @@ -3390,14 +3025,12 @@ connect(con2, localhost, root,,); --echo # Test 1: CREATE TABLE --echo # ---echo # Connection 2 connection con2; --echo # Start insert on the not-yet existing table --echo # Wait after taking the MDL lock SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish'; --send INSERT INTO t1 VALUES(1,"def") ---echo # Connection 1 connection default; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Now INSERT has a MDL on the non-existent table t1. @@ -3408,13 +3041,11 @@ SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL finish'; --echo # Try to create that table. --send CREATE TABLE t1 (c1 INT, c2 VARCHAR(100), KEY(c1)) ---echo # Connection 2 --echo # Insert fails connection con2; --error ER_NO_SUCH_TABLE --reap ---echo # Connection 1 connection default; --reap; SET DEBUG_SYNC= 'RESET'; @@ -3430,14 +3061,12 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t2 (c1 INT, c2 VARCHAR(100), KEY(c1)); ---echo # Connection 2 connection con2; --echo # Start insert on the not-yet existing table --echo # Wait after taking the MDL SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL locked WAIT_FOR finish'; --send INSERT INTO t1 VALUES(1,"def") ---echo # Connection 1 connection default; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Now INSERT has a MDL on the non-existent table t1. @@ -3448,13 +3077,11 @@ SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL finish'; --echo # Try to create that table. --send CREATE TABLE t1 LIKE t2 ---echo # Connection 2 --echo # Insert fails connection con2; --error ER_NO_SUCH_TABLE --reap ---echo # Connection 1 connection default; --reap SET DEBUG_SYNC= 'RESET'; @@ -3488,12 +3115,10 @@ insert into t1 values(1); --echo # which owner is in its turn waiting for our connection. lock tables t1 read; ---echo # Switching to connection 'con46044_2'. connection con46044_2; --echo # Sending: --send update t1 set i = 2 ---echo # Switching to connection 'con46044'. connection con46044; --echo # Waiting until UPDATE t1 SET ... is blocked. @@ -3506,7 +3131,6 @@ let $wait_condition= --echo # Sending: --send create table t2 select * from t1; ---echo # Switching to connection 'default'. connection default; --echo # Waiting until CREATE TABLE ... SELECT ... is blocked. let $wait_condition= @@ -3533,11 +3157,9 @@ select column_name from information_schema.columns select table_name, table_type, auto_increment, table_comment from information_schema.tables where table_schema='test' and table_name='t2'; ---echo # Switching to connection 'default'. connection default; unlock tables; ---echo # Switching to connection 'con46044'. connection con46044; --echo # Reaping CREATE TABLE ... SELECT ... . --reap @@ -3555,16 +3177,13 @@ connection con46044_2; --echo # --echo # We check same three queries to I_S in this new situation. ---echo # Switching to connection 'con46044_2'. connection con46044_2; lock tables t1 read; ---echo # Switching to connection 'con46044_3'. connection con46044_3; --echo # Sending: send update t1 set i = 3; ---echo # Switching to connection 'con46044'. connection con46044; --echo # Waiting until UPDATE t1 SET ... is blocked. @@ -3577,7 +3196,6 @@ let $wait_condition= --echo # Sending: --send create table t2 select * from t1; ---echo # Switching to connection 'default'. connection default; --echo # Waiting until CREATE TABLE ... SELECT ... is blocked. let $wait_condition= @@ -3590,7 +3208,6 @@ let $wait_condition= --echo # Sending: --send show fields from t2; ---echo # Switching to connection 'con46044_2'. connection con46044_2; --echo # Wait until SHOW FIELDS gets blocked. let $wait_condition= @@ -3601,12 +3218,10 @@ let $wait_condition= unlock tables; ---echo # Switching to connection 'con46044'. connection con46044; --echo # Reaping CREATE TABLE ... SELECT ... . --reap ---echo # Switching to connection 'default'. connection default; --echo # Reaping SHOW FIELDS ... --reap @@ -3616,16 +3231,13 @@ connection con46044_3; --echo # Reaping UPDATE t1 statement --reap ---echo # Switching to connection 'con46044_2'. connection con46044_2; lock tables t1 read; ---echo # Switching to connection 'con46044_3'. connection con46044_3; --echo # Sending: --send update t1 set i = 4 ---echo # Switching to connection 'con46044'. connection con46044; --echo # Waiting until UPDATE t1 SET ... is blocked. @@ -3638,7 +3250,6 @@ let $wait_condition= --echo # Sending: --send create table t2 select * from t1; ---echo # Switching to connection 'default'. connection default; --echo # Waiting until CREATE TABLE ... SELECT ... is blocked. let $wait_condition= @@ -3651,7 +3262,6 @@ let $wait_condition= --echo # Sending: --send select column_name from information_schema.columns where table_schema='test' and table_name='t2'; ---echo # Switching to connection 'con46044_2'. connection con46044_2; --echo # Wait until SELECT COLUMN_NAME FROM I_S.COLUMNS gets blocked. let $wait_condition= @@ -3662,12 +3272,10 @@ let $wait_condition= unlock tables; ---echo # Switching to connection 'con46044'. connection con46044; --echo # Reaping CREATE TABLE ... SELECT ... . --reap ---echo # Switching to connection 'default'. connection default; --echo # Reaping SELECT COLUMN_NAME FROM I_S.COLUMNS --reap @@ -3677,16 +3285,13 @@ connection con46044_3; --echo # Reaping UPDATE t1 statement --reap ---echo # Switching to connection 'con46044_2'. connection con46044_2; lock tables t1 read; ---echo # Switching to connection 'con46044_3'. connection con46044_3; --echo # Sending: --send update t1 set i = 5 ---echo # Switching to connection 'con46044'. connection con46044; --echo # Waiting until UPDATE t1 SET ... is blocked. @@ -3699,7 +3304,6 @@ let $wait_condition= --echo # Sending: --send create table t2 select * from t1; ---echo # Switching to connection 'default'. connection default; --echo # Waiting until CREATE TABLE ... SELECT ... is blocked. let $wait_condition= @@ -3713,7 +3317,6 @@ let $wait_condition= --echo # Sending: --send select table_name, table_type, auto_increment, table_comment from information_schema.tables where table_schema='test' and table_name='t2'; ---echo # Switching to connection 'con46044_2'. connection con46044_2; --echo # Wait until SELECT ... FROM I_S.TABLES gets blocked. let $wait_condition= @@ -3724,12 +3327,10 @@ let $wait_condition= unlock tables; ---echo # Switching to connection 'con46044'. connection con46044; --echo # Reaping CREATE TABLE ... SELECT ... . --reap ---echo # Switching to connection 'default'. connection default; --echo # Reaping SELECT ... FROM I_S.TABLES --reap @@ -3739,7 +3340,6 @@ connection con46044_3; --echo # Reaping UPDATE t1 statement --reap ---echo # Switching to connection 'default'. connection default; --echo # Clean-up. disconnect con46044; @@ -3765,13 +3365,11 @@ begin; select * from t1 where c2 = 3; --echo # ---echo # Switching to connection 'con46273'. connection con46273; set debug_sync='alter_table_copy_after_lock_upgrade SIGNAL alter_table_locked WAIT_FOR alter_go'; --send alter table t1 add column e int, rename to t2; --echo # ---echo # Switching to connection 'default'. connection default; set debug_sync='now WAIT_FOR alter_table_locked'; set debug_sync='mdl_acquire_lock_wait SIGNAL alter_go'; @@ -3782,13 +3380,11 @@ set debug_sync='mdl_acquire_lock_wait SIGNAL alter_go'; update t1 set c3=c3+1 where c2 = 3; --echo # ---echo # Switching to connection 'con46273'. connection con46273; --echo # Reap ALTER TABLE. --reap --echo # ---echo # Switching to connection 'default'. connection default; disconnect con46273; --echo # Clean-up. @@ -3807,12 +3403,10 @@ connect (con46673, localhost, root,,); connection default; create table t1 (i int); ---echo # Switching to connection 'con46673'. connection con46673; begin; insert into t1 values (1); ---echo # Switching to connection 'default'. connection default; --echo # Statement below should not get blocked. And if after some --echo # changes to code it is there should not be a deadlock between @@ -3820,12 +3414,10 @@ connection default; flush tables with read lock; unlock tables; ---echo # Switching to connection 'con46673'. connection con46673; delete from t1 where i = 1; commit; ---echo # Switching to connection 'default'. connection default; --echo # Clean-up disconnect con46673; @@ -3841,13 +3433,11 @@ connect (con2, localhost, root); --echo # Test 1: CREATE PROCEDURE ---echo # Connection 1 connection default; --echo # Start CREATE PROCEDURE and open mysql.proc SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL table_opened WAIT_FOR grlwait'; --send CREATE PROCEDURE p1() SELECT 1 ---echo # Connection 2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR table_opened'; --echo # Check that FLUSH must wait to get the GRL @@ -3855,16 +3445,13 @@ SET DEBUG_SYNC= 'now WAIT_FOR table_opened'; SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL grlwait'; --send FLUSH TABLES WITH READ LOCK ---echo # Connection 1 connection default; --reap ---echo # Connection 2 connection con2; --reap UNLOCK TABLES; ---echo # Connection 1 connection default; SET DEBUG_SYNC= 'RESET'; @@ -3875,7 +3462,6 @@ connection default; SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL table_opened WAIT_FOR grlwait'; --send DROP PROCEDURE p1 ---echo # Connection 2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR table_opened'; --echo # Check that FLUSH must wait to get the GRL @@ -3883,7 +3469,6 @@ SET DEBUG_SYNC= 'now WAIT_FOR table_opened'; SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL grlwait'; --send FLUSH TABLES WITH READ LOCK ---echo # Connection 1 connection default; --echo # Once FLUSH TABLES WITH READ LOCK starts waiting --echo # DROP PROCEDURE will be waked up and will drop @@ -3893,13 +3478,11 @@ connection default; --echo # Reaping DROP PROCEDURE. --reap ---echo # Connection 2 connection con2; --echo # Reaping FTWRL. --reap UNLOCK TABLES; ---echo # Connection 1 connection default; SET DEBUG_SYNC= 'RESET'; @@ -4015,13 +3598,11 @@ connect (con50913_2,localhost,root); connection default; create table t1 (i int) engine=InnoDB; ---echo # Switching to connection 'con50913_1'. connection con50913_1; set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL parked WAIT_FOR go'; --echo # Sending: --send alter table t1 add column j int, ALGORITHM=COPY ---echo # Switching to connection 'default'. connection default; --echo # Wait until ALTER TABLE gets blocked on a sync point after --echo # acquiring thr_lock.c lock. @@ -4031,7 +3612,6 @@ set debug_sync= 'now WAIT_FOR parked'; --echo # Sending: --send truncate table t1 ---echo # Switching to connection 'con50913_2'. connection con50913_2; --echo # Wait until TRUNCATE TABLE is blocked on MDL lock. let $wait_condition= @@ -4042,12 +3622,10 @@ let $wait_condition= --echo # Unblock ALTER TABLE. set debug_sync= 'now SIGNAL go'; ---echo # Switching to connection 'con50913_1'. connection con50913_1; --echo # Reaping ALTER TABLE. --reap ---echo # Switching to connection 'default'. connection default; --echo # Reaping TRUNCATE TABLE. --reap @@ -4074,17 +3652,14 @@ connect (con3,localhost,root); connection default; create table t1 (i int); ---echo # Switching to connection 'con1'. connection con1; begin; select * from t1; ---echo # Switching to connection 'con2'. connection con2; begin; select * from t1; ---echo # Switching to connection 'default'. connection default; --echo # Start ALTER TABLE which will acquire SNW lock and --echo # table lock and get blocked on sync point. @@ -4092,19 +3667,16 @@ set debug_sync= 'alter_table_copy_after_lock_upgrade SIGNAL parked WAIT_FOR go'; --echo # Sending: --send alter table t1 add column j int ---echo # Switching to connection 'con1'. connection con1; --echo # Wait until ALTER TABLE gets blocked on a sync point. set debug_sync= 'now WAIT_FOR parked'; --echo # Sending: --send insert into t1 values (1) ---echo # Switching to connection 'con2'. connection con2; --echo # Sending: --send insert into t1 values (1) ---echo # Switching to connection 'con3'. connection con3; --echo # Wait until both 'con1' and 'con2' are blocked trying to acquire --echo # SW lock on the table. @@ -4119,7 +3691,6 @@ let $wait_condition= --echo # should be aborted with ER_LOCK_DEADLOCK errors. set debug_sync= 'now SIGNAL go'; ---echo # Switching to connection 'con1'. connection con1; --echo # Reaping INSERT. It should end with ER_LOCK_DEADLOCK error and --echo # not wait indefinitely (as it happened before the bugfix). @@ -4127,14 +3698,12 @@ connection con1; --reap commit; ---echo # Switching to connection 'con2'. connection con2; --echo # Reaping INSERT. --error ER_LOCK_DEADLOCK --reap commit; ---echo # Switching to connection 'default'. connection default; --echo # Reap ALTER TABLE. --reap @@ -4165,32 +3734,26 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a INT) ENGINE=InnoDB; INSERT INTO t1 VALUES (1),(2),(3); ---echo # Connection: con1 connection con1; LOCK TABLES t1 WRITE; SET debug_sync='upgrade_lock_for_truncate SIGNAL parked_truncate WAIT_FOR go_truncate'; send TRUNCATE TABLE t1; connection default; ---echo # Connection: default SET debug_sync='now WAIT_FOR parked_truncate'; connection con2; ---echo # Connection: con2 SET debug_sync='after_open_table_ignore_flush SIGNAL parked_show WAIT_FOR go_show'; send SHOW FIELDS FROM t1; connection default; ---echo # Connection: default SET debug_sync='now WAIT_FOR parked_show'; connection con3; ---echo # Connection: con3 SET debug_sync='after_flush_unlock SIGNAL parked_flush WAIT_FOR go_flush'; send FLUSH TABLES t1; connection default; ---echo # Connection: default SET debug_sync='now WAIT_FOR parked_flush'; SET debug_sync='now SIGNAL go_truncate'; --echo # Ensure that truncate waits for a exclusive lock @@ -4200,22 +3763,18 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist SET debug_sync= 'now SIGNAL go_show'; connection con1; ---echo # Connection: con1 (TRUNCATE) --echo # Reaping... reap; UNLOCK TABLES; connection con2; ---echo # Connection: con2 (SHOW FIELDS FROM t1) --echo # Reaping... reap; connection default; ---echo # Connection: default SET debug_sync= 'now SIGNAL go_flush'; connection con3; ---echo # Connection: con3 (FLUSH TABLES t1) --echo # Reaping... reap; @@ -4224,7 +3783,6 @@ disconnect con2; disconnect con3; connection default; ---echo # Connection: default SET debug_sync= 'RESET'; DROP TABLE t1; @@ -4268,20 +3826,17 @@ connect (con3, localhost, root); --echo # not database DDL on different databases. Tests X vs X lock. --echo # ---echo # Connection default connection default; SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked'; --echo # Sending: --send CREATE DATABASE db1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Sending: # This should block. --send CREATE DATABASE db1 ---echo # Connection con3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' AND info='CREATE DATABASE db1'; @@ -4292,12 +3847,10 @@ ALTER DATABASE db2 DEFAULT CHARACTER SET utf8; DROP DATABASE db2; SET DEBUG_SYNC= 'now SIGNAL blocked'; ---echo # Connection default connection default; --echo # Reaping: CREATE DATABASE db1 --reap ---echo # Connection con2 connection con2; --echo # Reaping: CREATE DATABASE db1 --error ER_DB_CREATE_EXISTS @@ -4308,20 +3861,17 @@ connection con2; --echo # not database DDL on different databases. Tests X vs X lock. --echo # ---echo # Connection default connection default; SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked'; --echo # Sending: --send ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Sending: # This should block. --send ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 ---echo # Connection con3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' @@ -4333,42 +3883,35 @@ ALTER DATABASE db2 DEFAULT CHARACTER SET utf8; DROP DATABASE db2; SET DEBUG_SYNC= 'now SIGNAL blocked'; ---echo # Connection default connection default; --echo # Reaping: ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 --reap ---echo # Connection con2 connection con2; --echo # Reaping: ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 --reap ---echo # Connection default connection default; SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked'; --echo # Sending: --send ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Sending: # This should also block. --send DROP DATABASE db1 ---echo # Connection con3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' AND info='DROP DATABASE db1'; --source include/wait_condition.inc SET DEBUG_SYNC= 'now SIGNAL blocked'; ---echo # Connection default connection default; --echo # Reaping: ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 --reap ---echo # Connection con2 connection con2; --echo # Reaping: DROP DATABASE db1 --reap @@ -4387,20 +3930,17 @@ let $MYSQLD_DATADIR= `select @@datadir`; --mkdir $MYSQLD_DATADIR/a-b-c-d --copy_file $MYSQLD_DATADIR/db1/db.opt $MYSQLD_DATADIR/a-b-c-d/db.opt ---echo # Connection default connection default; SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked'; --echo # Sending: --send ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Sending: # This should block. --send ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME ---echo # Connection con3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' @@ -4410,12 +3950,10 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist ALTER DATABASE `#mysql50#a-b-c-d` UPGRADE DATA DIRECTORY NAME; SET DEBUG_SYNC= 'now SIGNAL blocked'; ---echo # Connection default connection default; --echo # Reaping: ALTER DATABASE '#mysql50#a-b-c' UPGRADE DATA DIRECTORY NAME --reap ---echo # Connection con2 connection con2; --echo # Reaping: ALTER DATABASE '#mysql50#a-b-c' UPGRADE DATA DIRECTORY NAME --error ER_BAD_DB_ERROR @@ -4428,20 +3966,17 @@ DROP DATABASE `a-b-c-d`; --echo # not database DDL on different databases. Tests X vs X lock. --echo # ---echo # Connection default connection default; SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked'; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Sending: # This should block. --send DROP DATABASE db1 ---echo # Connection con3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' AND info='DROP DATABASE db1'; @@ -4452,32 +3987,27 @@ ALTER DATABASE db2 DEFAULT CHARACTER SET utf8; DROP DATABASE db2; SET DEBUG_SYNC= 'now SIGNAL blocked'; ---echo # Connection default connection default; --echo # Reaping: DROP DATABASE db1 --reap ---echo # Connection con2 connection con2; --echo # Reaping: DROP DATABASE db1 --error ER_DB_DROP_EXISTS --reap ---echo # Connection default connection default; CREATE DATABASE db1; SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked'; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Sending: # This should also block. --send ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 ---echo # Connection con3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' @@ -4485,12 +4015,10 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist --source include/wait_condition.inc SET DEBUG_SYNC= 'now SIGNAL blocked'; ---echo # Connection default connection default; --echo # Reaping: DROP DATABASE db1 --reap ---echo # Connection con2 connection con2; --echo # Reaping: ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 # Error 1 is from ALTER DATABASE when the database does not exist. @@ -4504,21 +4032,18 @@ connection con2; --echo # Tests X vs IX lock. --echo # ---echo # Connection default connection default; CREATE DATABASE db1; SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked'; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Sending: # This should block. --send CREATE TABLE db1.t1 (a INT) ---echo # Connection con3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' AND @@ -4526,12 +4051,10 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist --source include/wait_condition.inc SET DEBUG_SYNC= 'now SIGNAL blocked'; ---echo # Connection default connection default; --echo # Reaping: DROP DATABASE db1 --reap ---echo # Connection con2 connection con2; --echo # Reaping: CREATE TABLE db1.t1 (a INT) --error ER_BAD_DB_ERROR @@ -4542,7 +4065,6 @@ connection con2; --echo # Tests X vs IX lock. --echo # ---echo # Connection default connection default; CREATE DATABASE db1; CREATE TABLE db1.t1 (a INT); @@ -4550,14 +4072,12 @@ SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked'; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Sending: # This should block. --send RENAME TABLE db1.t1 TO test.t1 ---echo # Connection con3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' AND @@ -4565,18 +4085,15 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist --source include/wait_condition.inc SET DEBUG_SYNC= 'now SIGNAL blocked'; ---echo # Connection default connection default; --echo # Reaping: DROP DATABASE db1 --reap ---echo # Connection con2 connection con2; --echo # Reaping: RENAME TABLE db1.t1 TO test.t1 --error ER_NO_SUCH_TABLE --reap ---echo # Connection default connection default; CREATE DATABASE db1; CREATE TABLE test.t2 (a INT); @@ -4584,14 +4101,12 @@ SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked'; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Sending: # This should block. --send RENAME TABLE test.t2 TO db1.t2 ---echo # Connection con3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' AND @@ -4599,12 +4114,10 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist --source include/wait_condition.inc SET DEBUG_SYNC= 'now SIGNAL blocked'; ---echo # Connection default connection default; --echo # Reaping: DROP DATABASE db1 --reap ---echo # Connection con2 connection con2; --echo # Reaping: RENAME TABLE test.t2 TO db1.t2 # Error 7 is from RENAME TABLE where the target database does not exist. @@ -4619,7 +4132,6 @@ DROP TABLE test.t2; --echo # Tests X vs IX lock. --echo # ---echo # Connection default connection default; CREATE DATABASE db1; CREATE TABLE db1.t1 (a INT); @@ -4627,32 +4139,27 @@ SET DEBUG_SYNC= 'after_wait_locked_schema_name SIGNAL locked WAIT_FOR blocked'; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --echo # Sending: # This should block. --send DROP TABLE db1.t1 ---echo # Connection con3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' AND info='DROP TABLE db1.t1'; --source include/wait_condition.inc SET DEBUG_SYNC= 'now SIGNAL blocked'; ---echo # Connection default connection default; --echo # Reaping: DROP DATABASE db1 --reap ---echo # Connection con2 connection con2; --echo # Reaping: DROP TABLE db1.t1 --error ER_BAD_TABLE_ERROR --reap ---echo # Connection default connection default; disconnect con2; disconnect con3; @@ -4671,16 +4178,13 @@ CREATE TABLE db1.t1(a INT); connect(con2, localhost, root); connect(con3, localhost, root); ---echo # Connection default connection default; FLUSH TABLE WITH READ LOCK; ---echo # Connection con2 connection con2; # IX global lock should block --send CREATE TABLE db1.t2(a INT) ---echo # Connection default connection default; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for global read lock' @@ -4688,21 +4192,17 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist --source include/wait_condition.inc UNLOCK TABLES; ---echo # Connection con2 connection con2; --echo # Reaping CREATE TABLE db1.t2(a INT) --reap ---echo # Connection default connection default; FLUSH TABLE WITH READ LOCK; ---echo # Connection con2 connection con2; # X global lock should block --send ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 ---echo # Connection default connection default; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for global read lock' @@ -4710,22 +4210,18 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist --source include/wait_condition.inc UNLOCK TABLES; ---echo # Connection con2 connection con2; --echo # Reaping ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 --reap ---echo # Connection default connection default; FLUSH TABLE WITH READ LOCK; ---echo # Connection con2 connection con2; # S global lock should not block FLUSH TABLE WITH READ LOCK; UNLOCK TABLES; ---echo # Connection default connection default; UNLOCK TABLES; DROP DATABASE db1; @@ -4752,7 +4248,6 @@ connect(con1, localhost, root); connect(con2, localhost, root); connect(con3, localhost, root); ---echo # Connection con1 connection con1; --echo # We need EXECUTE 2 since ALTER TABLE does SU => SNW => X and we want --echo # to stop at the second upgrade. @@ -4760,7 +4255,6 @@ SET DEBUG_SYNC= 'mdl_upgrade_lock SIGNAL upgrade WAIT_FOR continue EXECUTE 2'; --echo # Sending: --send ALTER TABLE m1 engine=MERGE UNION=(t2, t1) ---echo # Connection con2 connection con2; --echo # Waiting for ALTER TABLE to try lock upgrade SET DEBUG_SYNC= 'now WAIT_FOR upgrade'; @@ -4769,7 +4263,6 @@ SET DEBUG_SYNC= 'now WAIT_FOR upgrade'; --echo # Sending: --send DELETE FROM t2 WHERE a = 3 ---echo # Connection default connection con3; --echo # Check that DELETE is waiting on a metadata lock and not a table lock. let $wait_condition= @@ -4786,18 +4279,15 @@ connection default; --echo # Resuming ALTER TABLE SET DEBUG_SYNC= 'now SIGNAL continue'; ---echo # Connection con1 connection con1; --echo # Reaping: ALTER TABLE m1 engine=MERGE UNION=(t2, t1) --reap ---echo # Connection con2 connection con2; --echo # Reaping: DELETE FROM t2 WHERE a = 3 --reap connection con3; --echo # Reaping: SELECT * FROM m1 WHERE a < 3 --reap ---echo # Connection default connection default; DROP TABLE m1, t1, t2; SET DEBUG_SYNC= 'RESET'; diff --git a/mysql-test/t/merge-big.test b/mysql-test/t/merge-big.test index 78c3e8c00ac..9bd2cab2c8a 100644 --- a/mysql-test/t/merge-big.test +++ b/mysql-test/t/merge-big.test @@ -40,13 +40,11 @@ drop table if exists t1,t2,t3,t4,t5,t6; CREATE TABLE t1 (c1 INT) ENGINE= MyISAM; LOCK TABLE t1 WRITE; #SELECT NOW(); - --echo # connection con1 connect (con1,localhost,root,,); let $con1_id= `SELECT CONNECTION_ID()`; SET @orig_debug=@@debug; SET GLOBAL debug_dbug="+d,sleep_open_and_lock_after_open"; send INSERT INTO t1 VALUES (1); ---echo # connection default connection default; --echo # Let INSERT go into thr_multi_lock(). #--sleep 8 @@ -72,12 +70,9 @@ FLUSH TABLES; SELECT * FROM t1; #SELECT NOW(); UNLOCK TABLES; - --echo # connection con1 connection con1; reap; SET GLOBAL debug_dbug=@orig_debug; disconnect con1; ---echo # connection default connection default; DROP TABLE t1; - diff --git a/mysql-test/t/merge.test b/mysql-test/t/merge.test index 519094d6350..faa420fd275 100644 --- a/mysql-test/t/merge.test +++ b/mysql-test/t/merge.test @@ -2585,7 +2585,6 @@ DROP TABLE t1, t2, t3, t4, m1, m2; --disable_warnings DROP TABLE IF EXISTS t1, t2, t3; --enable_warnings ---echo # Connection con1. connect (con1,localhost,root,,); CREATE TABLE t1 (c1 int); CREATE TABLE t2 (c1 int); @@ -2594,12 +2593,10 @@ START TRANSACTION; --error ER_ILLEGAL_HA HANDLER t3 OPEN; DROP TABLE t1, t2, t3; ---echo # Connection default. connection default; ---echo # Disconnecting con1, all mdl_tickets must have been released. +--echo # all mdl_tickets must have been released. disconnect con1; --echo # The bug-specific case. ---echo # Connection con1. connect (con1,localhost,root,,); CREATE TABLE t1 (c1 int); CREATE TABLE t2 (c1 int); @@ -2609,9 +2606,8 @@ START TRANSACTION; --error ER_WRONG_MRG_TABLE HANDLER t3 OPEN; DROP TABLE t1, t3; ---echo # Connection default. connection default; ---echo # Disconnecting con1, all mdl_tickets must have been released. +--echo # all mdl_tickets must have been released. disconnect con1; --echo # diff --git a/mysql-test/t/myisam_debug.test b/mysql-test/t/myisam_debug.test index 5b5d006bd22..b106ecdea5e 100644 --- a/mysql-test/t/myisam_debug.test +++ b/mysql-test/t/myisam_debug.test @@ -34,13 +34,11 @@ while ($i) commit; --enable_query_log ---echo # Switch to insert Connection CONNECTION insertConn; SET SESSION debug_dbug='+d,wait_in_enable_indexes'; --echo # Send insert data SEND INSERT INTO t1(id) SELECT id FROM t2; ---echo # Switch to default Connection CONNECTION default; --echo # Wait for insert data to reach the debug point diff --git a/mysql-test/t/myisam_recover.test b/mysql-test/t/myisam_recover.test index 49fe9c33460..0c686e59fb1 100644 --- a/mysql-test/t/myisam_recover.test +++ b/mysql-test/t/myisam_recover.test @@ -12,9 +12,6 @@ --echo # For that, we set the table cache to minimal size and populate it --echo # in a concurrent connection. connect(con1,localhost,root,,test,,); ---echo # ---echo # Switching to connection con1 ---echo # connection con1; --echo # --echo # Minimal values. @@ -56,9 +53,6 @@ drop procedure p_create; let $lock=`select @lock_table_stmt`; eval $lock; --enable_query_log ---echo # ---echo # Switching to connection 'default' ---echo # connection default; --echo # --echo # We have to disable the ps-protocol, to avoid @@ -102,9 +96,6 @@ select * from t1_mrg; --echo # Cleanup --echo # drop table t1, t1_mrg; ---echo # ---echo # Switching to connection con1 ---echo # connection con1; unlock tables; prepare stmt from @drop_table_stmt; diff --git a/mysql-test/t/mysqlbinlog_row_big.test b/mysql-test/t/mysqlbinlog_row_big.test index ffd1b79af34..44bceaad66b 100644 --- a/mysql-test/t/mysqlbinlog_row_big.test +++ b/mysql-test/t/mysqlbinlog_row_big.test @@ -52,11 +52,8 @@ SET @@global.max_allowed_packet= 1024*1024*1024; --echo to be seen and used, we must start a new connection. --echo The change does not take effect with the current one. --echo For simplicity, we just disconnect / reconnect connection default here. ---echo Disconnecting default connection... disconnect default; ---echo Reconnecting default connection... connect (default, localhost,root,,); ---echo default connection established, continuing with the test --echo # --echo # Delete all existing binary logs. diff --git a/mysql-test/t/mysqldump-max.test b/mysql-test/t/mysqldump-max.test index 3f73f046959..f5f4dbcd088 100644 --- a/mysql-test/t/mysqldump-max.test +++ b/mysql-test/t/mysqldump-max.test @@ -1133,7 +1133,6 @@ connect(c2,127.0.0.1,root,,test,$MASTER_MYPORT,); connect(c3,127.0.0.1,root,,test,$MASTER_MYPORT,); connection default; ---echo # Connection default SET binlog_format= mixed; RESET MASTER; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; @@ -1143,23 +1142,19 @@ INSERT INTO t2 VALUES (1,0), (2,0); SELECT GET_LOCK("block_queries_1", 120); connection c3; ---echo # Connection c3 SELECT GET_LOCK("block_queries_2", 120); # Start two queries that will be running on the tables during mysqldump connection c1; ---echo # Connection c1 SET @c= 0; send SELECT IF(@c<1, @c:=@c+1, GET_LOCK("block_queries_1", 120)) FROM t1 ORDER BY a; connection c2; ---echo # Connection c2 SET binlog_format="row"; SET @d= 10; send UPDATE t2 SET b=IF(@d<=10, @d:=@d+1, GET_LOCK("block_queries_2", 120)) ORDER BY a; connection default; ---echo # Connection default --echo # Make sure other queries are running (and waiting). let $wait_condition= SELECT COUNT(*) FROM information_schema.processlist @@ -1175,19 +1170,15 @@ let $wait_condition= SELECT RELEASE_LOCK("block_queries_1"); connection c3; ---echo # Connection c3 SELECT RELEASE_LOCK("block_queries_2"); connection c1; ---echo # Connection c1 reap; connection c2; ---echo # Connection c2 reap; connection default; ---echo # Connection default SELECT * FROM t2 ORDER BY a; DROP TABLE t1; DROP TABLE t2; diff --git a/mysql-test/t/mysqltest.test b/mysql-test/t/mysqltest.test index ae59c713c3d..a797dff572e 100644 --- a/mysql-test/t/mysqltest.test +++ b/mysql-test/t/mysqltest.test @@ -427,7 +427,6 @@ select 7; --error 1 --exec echo "--disable_info OCNE" | $MYSQL_TEST 2>&1 ---enable_connect_log ONCE connect (con1,localhost,root,,); connection default; disconnect con1; @@ -1789,12 +1788,14 @@ eval select "$long_rep" as x; # Repeat connect/disconnect --write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql let $i=200; +disable_connect_log; while ($i) { connect (test_con1,localhost,root,,); disconnect test_con1; dec $i; } +enable_connect_log; echo 200 connects succeeded; EOF --exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1 @@ -1838,7 +1839,6 @@ disconnect con2; connection default; # Test enable_connect_log ---enable_connect_log connect (con1,localhost,root,,); connection default; connection con1; @@ -1851,7 +1851,6 @@ connection con1; --enable_query_log disconnect con1; connection default; ---disable_connect_log # ---------------------------------------------------------------------------- # Test mysqltest arguments diff --git a/mysql-test/t/not_embedded_server.test b/mysql-test/t/not_embedded_server.test index f22bf8cd7b5..b2cbdba6850 100644 --- a/mysql-test/t/not_embedded_server.test +++ b/mysql-test/t/not_embedded_server.test @@ -46,7 +46,6 @@ DROP TABLE t1; CREATE USER nopriv_user@localhost; connection default; ---echo connection: default --disable_warnings DROP TABLE IF EXISTS t1,t2,t3; @@ -65,7 +64,6 @@ FLUSH PRIVILEGES; connect (con1,localhost,nopriv_user,,); connection con1; ---echo connection: con1 let outfile=$MYSQLTEST_VARDIR/tmp/mytest; --error 0,1 @@ -93,7 +91,6 @@ disconnect con1; --source include/wait_until_disconnected.inc connection default; ---echo connection: default DROP TABLE t1,t2; DROP FUNCTION f; diff --git a/mysql-test/t/partition_debug_sync.test b/mysql-test/t/partition_debug_sync.test index 90f1d4173ff..11af9b06cdd 100644 --- a/mysql-test/t/partition_debug_sync.test +++ b/mysql-test/t/partition_debug_sync.test @@ -22,7 +22,6 @@ SET DEBUG_SYNC= 'RESET'; --echo # only until ALTER tries to upgrade its MDL lock, which ends up in MDL --echo # deadlock which is correctly reported. connect(con1, localhost, root,,); ---echo # Con 1 SET DEBUG_SYNC= 'RESET'; CREATE TABLE t1 (a INTEGER, @@ -38,12 +37,10 @@ SET DEBUG_SYNC= 'alter_table_before_create_table_no_lock SIGNAL removing_partiti SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL waiting_for_upgrade'; --send ALTER TABLE t1 REMOVE PARTITIONING connection default; ---echo # Con default SET DEBUG_SYNC= 'now WAIT_FOR removing_partitioning'; SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL waiting_for_alter'; SET DEBUG_SYNC= 'rm_table_no_locks_before_delete_table WAIT_FOR waiting_for_upgrade'; DROP TABLE IF EXISTS t1; ---echo # Con 1 connection con1; --error ER_LOCK_DEADLOCK --reap @@ -71,12 +68,10 @@ SET DEBUG_SYNC= 'alter_table_before_open_tables SIGNAL removing_partitions WAIT_ SET DEBUG_SYNC= 'alter_table_before_rename_result_table WAIT_FOR delete_done'; --send ALTER TABLE t2 REMOVE PARTITIONING connection default; ---echo # Con default SET DEBUG_SYNC= 'now WAIT_FOR removing_partitions'; SET DEBUG_SYNC= 'rm_table_no_locks_before_delete_table SIGNAL waiting_for_alter'; SET DEBUG_SYNC= 'rm_table_no_locks_before_binlog SIGNAL delete_done'; DROP TABLE IF EXISTS t2; ---echo # Con 1 connection con1; --error ER_NO_SUCH_TABLE --reap @@ -84,7 +79,6 @@ SET DEBUG_SYNC= 'RESET'; disconnect con1; --source include/wait_until_disconnected.inc connection default; ---echo # Con default SET DEBUG_SYNC= 'RESET'; --echo End of 5.1 tests @@ -98,38 +92,32 @@ ENGINE = InnoDB PARTITION BY HASH (a) PARTITIONS 3; HANDLER t1 OPEN; ---echo # Con1 connect (con1, localhost, root,,); LOCK TABLES t1 WRITE, t2 READ; ---echo # Default connection default; SET DEBUG_SYNC="wait_for_lock SIGNAL locking"; send INSERT INTO t2 VALUES (1), (2), (3); ---echo # Con1 connection con1; SET DEBUG_SYNC="now WAIT_FOR locking"; send ALTER TABLE t1 ADD COLUMN b int; ---echo # Default connection default; --error ER_LOCK_ABORTED --reap SELECT 1; ---echo # Con1 connection con1; --reap UNLOCK TABLES; --disconnect con1 ---echo # Default connection default; SET DEBUG_SYNC = 'RESET'; diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test index d7f683aa9e9..62a9173b526 100644 --- a/mysql-test/t/partition_innodb.test +++ b/mysql-test/t/partition_innodb.test @@ -106,7 +106,6 @@ INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); BEGIN; SELECT COUNT(*) FROM t1; ---echo # con1 --connect (con1,localhost,root,,) --echo # SEND a ALTER PARTITION which waits on the ongoing transaction. --send @@ -126,11 +125,11 @@ AND STATE = 'Waiting for table metadata lock'; SELECT COUNT(*) FROM t1; COMMIT; ---echo # con1, reaping ALTER. +--echo # reaping ALTER. --connection con1 --reap ---echo # Disconnecting con1 and switching to default. Cleaning up. +--echo # Cleaning up. --disconnect con1 --connection default @@ -170,7 +169,6 @@ SELECT * FROM t1 FOR UPDATE; UPDATE t1 SET name = 'Mattias' WHERE id = 7; SELECT * FROM t1 WHERE id = 7; --connect (con1, localhost, root,,) ---echo # Connection con1 SET lock_wait_timeout = 1; --echo # After the patch it will wait and fail on timeout. --error ER_LOCK_WAIT_TIMEOUT @@ -178,7 +176,6 @@ ALTER TABLE t1 DROP PARTITION p3; SHOW WARNINGS; --disconnect con1 --connection default ---echo # Connection default SELECT * FROM t1; --echo # No changes. COMMIT; @@ -609,7 +606,6 @@ START TRANSACTION; SELECT * FROM t1 FOR UPDATE; connect (con1, localhost, root,,); ---echo # Connection con1 --error ER_LOCK_WAIT_TIMEOUT ALTER TABLE t1 REORGANIZE PARTITION pMAX INTO (PARTITION p3 VALUES LESS THAN (3), @@ -626,7 +622,6 @@ SHOW WARNINGS; disconnect con1; connection default; ---echo # Connection default SELECT * FROM t1; COMMIT; DROP TABLE t1; @@ -871,10 +866,8 @@ CREATE TABLE t1 PARTITION BY HASH (a) PARTITIONS 3; START TRANSACTION WITH CONSISTENT SNAPSHOT; --connect (con1, localhost, root,,) - --echo # con1 ALTER TABLE t1 ADD INDEX idx1 (b); --connection default - --echo # con default --error ER_TABLE_DEF_CHANGED SELECT b FROM t1 WHERE b = 0; --error ER_TABLE_DEF_CHANGED @@ -889,11 +882,9 @@ CREATE TABLE t1 PRIMARY KEY (a)) ENGINE = InnoDB; START TRANSACTION WITH CONSISTENT SNAPSHOT; ---echo # con1 --connect (con1, localhost, root,,) ALTER TABLE t1 ADD INDEX idx1 (b); --connection default ---echo # con default --error ER_TABLE_DEF_CHANGED SELECT b FROM t1 WHERE b = 0; --error ER_TABLE_DEF_CHANGED diff --git a/mysql-test/t/partition_innodb_plugin.test b/mysql-test/t/partition_innodb_plugin.test index fd6e60c27fb..eb3f999641d 100644 --- a/mysql-test/t/partition_innodb_plugin.test +++ b/mysql-test/t/partition_innodb_plugin.test @@ -41,7 +41,6 @@ SET @@global.innodb_file_format = Barracuda, @@global.innodb_file_per_table = ON, @@global.innodb_strict_mode = ON; ---echo # Connection con1 --connect(con1,localhost,root,,) CREATE TABLE t1 (id INT NOT NULL @@ -59,7 +58,6 @@ SET GLOBAL innodb_file_per_table = OFF; --disconnect con1 --connect(con2,localhost,root,,) ---echo # Connection con2 LOCK TABLE t1 WRITE; @@ -89,7 +87,6 @@ DROP TABLE t1; --disconnect con2 --connection default ---echo # Connection default SET @@global.innodb_strict_mode = @old_innodb_strict_mode; SET @@global.innodb_file_format = @old_innodb_file_format; SET @@global.innodb_file_per_table = @old_innodb_file_per_table; @@ -110,20 +107,16 @@ SUBPARTITION BY HASH (a) SUBPARTITION `sp3``\""e`)); INSERT INTO `t``\""e` VALUES (0), (2), (6), (10), (14), (18), (22); START TRANSACTION; ---echo # con1 connect(con1,localhost,root,,); SET NAMES utf8; START TRANSACTION; ---echo # default connection connection default; UPDATE `t``\""e` SET a = 16 WHERE a = 0; ---echo # con1 connection con1; UPDATE `t``\""e` SET a = 8 WHERE a = 22; let $id_1= `SELECT CONNECTION_ID()`; SEND; UPDATE `t``\""e` SET a = 12 WHERE a = 0; ---echo # default connection connection default; let $wait_timeout= 2; let $wait_condition= SELECT 1 FROM INFORMATION_SCHEMA.PROCESSLIST @@ -156,12 +149,10 @@ set sql_mode = 'ANSI_QUOTES'; --replace_regex /.*RECORD LOCKS space id [0-9]* page no [0-9]* n bits [0-9]* // / trx id .*// /.*index .* in // /trx table locks [0-9]* // /total table locks [0-9]* // SHOW ENGINE InnoDB STATUS; set @@sql_mode = @old_sql_mode; ---echo # con1 connection con1; REAP; ROLLBACK; disconnect con1; ---echo # default connection connection default; DROP TABLE `t``\""e`; SET NAMES DEFAULT; diff --git a/mysql-test/t/partition_innodb_semi_consistent.test b/mysql-test/t/partition_innodb_semi_consistent.test index 7ab2527f0a5..7a1dfc36173 100644 --- a/mysql-test/t/partition_innodb_semi_consistent.test +++ b/mysql-test/t/partition_innodb_semi_consistent.test @@ -75,7 +75,6 @@ connect (con2,localhost,root,,); SET SESSION AUTOCOMMIT = 0; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; set binlog_format=mixed; ---echo # Switch to connection con1 connection con1; eval @@ -94,7 +93,6 @@ UPDATE t1 SET b = 12 WHERE a = 1; --disable_info SELECT * FROM t1; ---echo # Switch to connection con2 connection con2; --enable_info @@ -104,7 +102,6 @@ UPDATE t1 SET b = 21 WHERE a = 1; --disable_info ROLLBACK; ---echo # Switch to connection con1 connection con1; SELECT * FROM t1; ROLLBACK; @@ -140,12 +137,10 @@ UPDATE t1 SET b = CONCAT(b, '+con1') WHERE a = 1; --disable_info SELECT * FROM t1; ---echo # Switch to connection con2 connection con2; --send CALL p1; ---echo # Switch to connection con1 connection con1; SELECT * FROM t1; COMMIT; @@ -158,13 +153,11 @@ while ($bug31310) SELECT * FROM t1; ---echo # Switch to connection con2 connection con2; --reap SELECT * FROM t1; COMMIT; ---echo # Switch to connection con1 connection con1; --echo # 3. test for updated key column: @@ -180,12 +173,10 @@ UPDATE t1 SET a = 2, b = CONCAT(b, '+con1') WHERE a = 1; --disable_info SELECT * FROM t1; ---echo # Switch to connection con2 connection con2; --send CALL p1; ---echo # Switch to connection con1 connection con1; SELECT * FROM t1; COMMIT; @@ -198,7 +189,6 @@ while ($bug31310) SELECT * FROM t1; ---echo # Switch to connection con2 connection con2; reap; SELECT * FROM t1; diff --git a/mysql-test/t/partition_innodb_stmt.test b/mysql-test/t/partition_innodb_stmt.test index c6f30f41969..96a59cb9311 100644 --- a/mysql-test/t/partition_innodb_stmt.test +++ b/mysql-test/t/partition_innodb_stmt.test @@ -2,7 +2,6 @@ --source include/have_binlog_format_statement.inc --source include/have_innodb.inc ---echo # connection default SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; CREATE TABLE t1 @@ -28,14 +27,12 @@ SELECT * FROM t1; connect (con1, localhost, root,,); connection con1; ---echo #connection con1 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; BEGIN; INSERT INTO t1 VALUES(7); COMMIT; connection default; ---echo # connection default COMMIT; FLUSH TABLES; @@ -47,7 +44,6 @@ SELECT * FROM t1; connection con1; ---echo # connection con1 SET TRANSACTION ISOLATION LEVEL READ COMMITTED; BEGIN; --error ER_BINLOG_STMT_MODE_AND_ROW_ENGINE diff --git a/mysql-test/t/partition_sync.test b/mysql-test/t/partition_sync.test index d5d60c176c5..fd704f35534 100644 --- a/mysql-test/t/partition_sync.test +++ b/mysql-test/t/partition_sync.test @@ -16,22 +16,18 @@ INSERT INTO t1 VALUES (0),(1); connect(con1,localhost,root); ---echo # Connection 2 connection con1; BEGIN; SELECT * FROM t1; ---echo # Connection 1 connection default; --error ER_DROP_PARTITION_NON_EXISTENT ALTER TABLE t1 DROP PARTITION p3; ---echo # Connection 2 connection con1; --echo # This failed with deadlock and should not do so. SELECT * FROM t1; ---echo # Connection 1 connection default; disconnect con1; DROP TABLE t1; @@ -53,34 +49,28 @@ INSERT INTO tbl_with_partitions VALUES (1); connect(con2,localhost,root); connect(con3,localhost,root); ---echo # Connection 3 connection con3; LOCK TABLE tbl_with_partitions READ; ---echo # Connection 1 --echo # Access table with disabled autocommit connection default; SET AUTOCOMMIT = 0; SELECT * FROM tbl_with_partitions; ---echo # Connection 2 --echo # Alter table, abort after prepare connection con2; set session debug_dbug="+d,abort_copy_table"; --error ER_LOCK_WAIT_TIMEOUT ALTER TABLE tbl_with_partitions ADD COLUMN f INT; ---echo # Connection 1 --echo # Try accessing the table after Alter aborted. --echo # This used to give ER_LOCK_DEADLOCK. connection default; SELECT * FROM tbl_with_partitions; ---echo # Connection 3 connection con3; UNLOCK TABLES; ---echo # Connection 1 --echo # Cleanup connection default; disconnect con2; diff --git a/mysql-test/t/plugin_auth_qa_1.test b/mysql-test/t/plugin_auth_qa_1.test index 55fef4254e1..b0b8ffb3544 100644 --- a/mysql-test/t/plugin_auth_qa_1.test +++ b/mysql-test/t/plugin_auth_qa_1.test @@ -99,22 +99,16 @@ CREATE USER plug_user IDENTIFIED WITH test_plugin_server AS 'plug_dest'; CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd'; GRANT PROXY ON plug_dest TO plug_user; ---echo connect(plug_user,localhost,plug_user,plug_dest); connect(plug_user,localhost,plug_user,plug_dest); select USER(),CURRENT_USER(); ---echo connection default; connection default; ---echo disconnect plug_user; disconnect plug_user; RENAME USER plug_user TO new_user; ---echo connect(plug_user,localhost,new_user,plug_dest); connect(plug_user,localhost,new_user,plug_dest); select USER(),CURRENT_USER(); ---echo connection default; connection default; --sorted_result SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root'; ---echo disconnect plug_user; disconnect plug_user; UPDATE mysql.user SET user='plug_user' WHERE user='new_user'; FLUSH PRIVILEGES; @@ -128,12 +122,9 @@ CREATE USER plug_user IDENTIFIED WITH test_plugin_server AS 'plug_dest'; CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd'; GRANT PROXY ON plug_dest TO plug_user; ---echo connect(plug_user,localhost,plug_user,plug_dest); connect(plug_user,localhost,plug_user,plug_dest); select USER(),CURRENT_USER(); ---echo connection default; connection default; ---echo disconnect plug_user; disconnect plug_user; --sorted_result SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root'; @@ -149,7 +140,6 @@ UPDATE mysql.user SET plugin='new_plugin_server' WHERE user='new_user'; FLUSH PRIVILEGES; --sorted_result SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root'; ---echo connect(plug_user,localhost,new_user,new_dest); --disable_query_log --error ER_PLUGIN_IS_NOT_LOADED connect(plug_user,localhost,new_user,new_dest); @@ -160,12 +150,9 @@ FLUSH PRIVILEGES; GRANT PROXY ON new_dest TO new_user; --sorted_result SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root'; ---echo connect(plug_user,localhost,new_user,new_dest); connect(plug_user,localhost,new_user,new_dest); select USER(),CURRENT_USER(); ---echo connection default; connection default; ---echo disconnect plug_user; disconnect plug_user; UPDATE mysql.user SET USER='plug_dest' WHERE user='new_dest'; FLUSH PRIVILEGES; @@ -173,12 +160,9 @@ CREATE USER new_dest IDENTIFIED BY 'new_dest_passwd'; --sorted_result SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root'; GRANT ALL PRIVILEGES ON test.* TO new_user; ---echo connect(plug_user,localhost,new_dest,new_dest_passwd); connect(plug_user,localhost,new_dest,new_dest_passwd); select USER(),CURRENT_USER(); ---echo connection default; connection default; ---echo disconnect plug_user; disconnect plug_user; DROP USER new_user,new_dest,plug_dest; @@ -188,36 +172,26 @@ CREATE USER ''@'%%' IDENTIFIED WITH test_plugin_server AS 'proxied_user'; CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd'; --sorted_result SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root'; ---echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd); connect(proxy_con,localhost,proxied_user,proxied_user_passwd); SELECT USER(),CURRENT_USER(); --echo ========== test 2.2.1 ====================================== SELECT @@proxy_user; ---echo connection default; connection default; ---echo disconnect proxy_con; disconnect proxy_con; ---echo connect(proxy_con,localhost,proxy_user,proxied_user); --disable_query_log --error ER_ACCESS_DENIED_ERROR : this should fail : no grant connect(proxy_con,localhost,proxy_user,proxied_user); --enable_query_log GRANT PROXY ON proxied_user TO ''@'%%'; ---echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd); connect(proxy_con,localhost,proxied_user,proxied_user_passwd); SELECT USER(),CURRENT_USER(); ---echo connection default; connection default; ---echo disconnect proxy_con; disconnect proxy_con; ---echo connect(proxy_con,localhost,proxy_user,proxied_user); connect(proxy_con,localhost,proxy_user,proxied_user); SELECT USER(),CURRENT_USER(); --echo ========== test 2.2.1 ====================================== SELECT @@proxy_user; ---echo connection default; connection default; ---echo disconnect proxy_con; disconnect proxy_con; DROP USER ''@'%%',proxied_user; # @@ -226,34 +200,24 @@ GRANT ALL PRIVILEGES ON test_user_db.* TO ''@'%%' CREATE USER proxied_user IDENTIFIED BY 'proxied_user_passwd'; --sorted_result SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root'; ---echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd); connect(proxy_con,localhost,proxied_user,proxied_user_passwd); SELECT USER(),CURRENT_USER(); SELECT @@proxy_user; ---echo connection default; connection default; ---echo disconnect proxy_con; disconnect proxy_con; ---echo connect(proxy_con,localhost,proxy_user,proxied_user); --disable_query_log --error ER_ACCESS_DENIED_ERROR : this should fail : no grant connect(proxy_con,localhost,proxy_user,proxied_user); --enable_query_log GRANT PROXY ON proxied_user TO ''@'%%'; ---echo connect(proxy_con,localhost,proxied_user,proxied_user_passwd); connect(proxy_con,localhost,proxied_user,proxied_user_passwd); SELECT USER(),CURRENT_USER(); ---echo connection default; connection default; ---echo disconnect proxy_con; disconnect proxy_con; ---echo connect(proxy_con,localhost,proxy_user,proxied_user); connect(proxy_con,localhost,proxy_user,proxied_user); SELECT USER(),CURRENT_USER(); SELECT @@proxy_user; ---echo connection default; connection default; ---echo disconnect proxy_con; disconnect proxy_con; DROP USER ''@'%%',proxied_user; # @@ -270,47 +234,31 @@ GRANT PROXY ON proxied_user_4 TO ''@'%%'; GRANT PROXY ON proxied_user_5 TO ''@'%%'; --sorted_result SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root'; ---echo connect(proxy_con_1,localhost,proxied_user_1,'proxied_user_1_pwd'); connect(proxy_con_1,localhost,proxied_user_1,'proxied_user_1_pwd'); ---echo connect(proxy_con_2,localhost,proxied_user_2,proxied_user_2_pwd); connect(proxy_con_2,localhost,proxied_user_2,proxied_user_2_pwd); ---echo connect(proxy_con_3,localhost,proxied_user_3,proxied_user_3_pwd); connect(proxy_con_3,localhost,proxied_user_3,proxied_user_3_pwd); ---echo connect(proxy_con_4,localhost,proxied_user_4,proxied_user_4_pwd); connect(proxy_con_4,localhost,proxied_user_4,proxied_user_4_pwd); ---echo connect(proxy_con_5,localhost,proxied_user_5,proxied_user_5_pwd); connect(proxy_con_5,localhost,proxied_user_5,proxied_user_5_pwd); ---echo connection proxy_con_1; connection proxy_con_1; SELECT USER(),CURRENT_USER(); SELECT @@proxy_user; ---echo connection proxy_con_2; connection proxy_con_2; SELECT USER(),CURRENT_USER(); SELECT @@proxy_user; ---echo connection proxy_con_3; connection proxy_con_3; SELECT USER(),CURRENT_USER(); SELECT @@proxy_user; ---echo connection proxy_con_4; connection proxy_con_4; SELECT USER(),CURRENT_USER(); SELECT @@proxy_user; ---echo connection proxy_con_5; connection proxy_con_5; SELECT USER(),CURRENT_USER(); SELECT @@proxy_user; ---echo connection default; connection default; ---echo disconnect proxy_con_1; disconnect proxy_con_1; ---echo disconnect proxy_con_2; disconnect proxy_con_2; ---echo disconnect proxy_con_3; disconnect proxy_con_3; ---echo disconnect proxy_con_4; disconnect proxy_con_4; ---echo disconnect proxy_con_5; disconnect proxy_con_5; DROP USER ''@'%%',proxied_user_1,proxied_user_2,proxied_user_3,proxied_user_4,proxied_user_5; diff --git a/mysql-test/t/query_cache_28249.test b/mysql-test/t/query_cache_28249.test index b1be7c57343..a08371fe576 100644 --- a/mysql-test/t/query_cache_28249.test +++ b/mysql-test/t/query_cache_28249.test @@ -19,12 +19,10 @@ SET @query_cache_min_res_unit= @@global.query_cache_min_res_unit; SET @query_cache_size= @@global.query_cache_size; --echo # Bug#28249 Query Cache returns wrong result with concurrent insert/ certain lock ---echo # Establish connections user1,user2,user3 (user=root) connect (user1,localhost,root,,test,,); connect (user2,localhost,root,,test,,); connect (user3,localhost,root,,test,,); ---echo # Switch to connection user1 connection user1; SET GLOBAL query_cache_type=1; @@ -40,11 +38,9 @@ CREATE TABLE t1 (a INT); CREATE TABLE t2 (a INT); INSERT INTO t1 VALUES (1),(2),(3); ---echo # Switch to connection user2 connection user2; LOCK TABLE t2 WRITE; ---echo # Switch to connection user1 connection user1; --echo # "send" the next select, "reap" the result later. --echo # The select will be blocked by the write lock on the t1. @@ -53,7 +49,6 @@ SELECT *, (SELECT COUNT(*) FROM t2) FROM t1; send; eval $select_for_qc; ---echo # Switch to connection user3 connection user3; # Typical information_schema.processlist content after sufficient sleep time # ID USER COMMAND TIME STATE INFO @@ -73,11 +68,9 @@ WHERE state = 'Waiting for table metadata lock' AND info = '$select_for_qc'; INSERT INTO t1 VALUES (4); ---echo # Switch to connection user2 connection user2; UNLOCK TABLES; ---echo # Switch to connection user1 connection user1; # # Since the lock ordering rule in thr_multi_lock depends on @@ -95,13 +88,11 @@ connection user1; --reap --enable_result_log ---echo # Switch to connection user3 connection user3; --echo # The next select enforces that effects of "concurrent_inserts" like the --echo # record with a = 4 is missing in result sets can no more happen. SELECT 1 FROM t1 WHERE a = 4; ---echo # Switch to connection user1 connection user1; --echo # The next result set must contain 4 rows. # If not, we have a regression of Bug#28249 @@ -111,7 +102,6 @@ eval $select_for_qc; DROP TABLE t1,t2; ---echo # Switch to connection default + close connections user1,user2,user3 connection default; disconnect user1; disconnect user2; @@ -121,4 +111,3 @@ SET GLOBAL query_cache_type= @query_cache_type; SET GLOBAL query_cache_limit= @query_cache_limit; SET GLOBAL query_cache_min_res_unit= @query_cache_min_res_unit; SET GLOBAL query_cache_size= @query_cache_size; - diff --git a/mysql-test/t/query_cache_debug.test b/mysql-test/t/query_cache_debug.test index 5eba778cf9e..31f2d786efb 100644 --- a/mysql-test/t/query_cache_debug.test +++ b/mysql-test/t/query_cache_debug.test @@ -27,7 +27,7 @@ connection default; set debug_sync="now WAIT_FOR parked"; connection bug30887con2; ---echo On a second connection; clear the query cache. +--echo clear the query cache. show status like 'Qcache_queries_in_cache'; set global query_cache_size= 0; @@ -71,28 +71,23 @@ connect(con1,localhost,root,,test,,); connect(con2,localhost,root,,test,,); connection con1; ---echo # Switch to connection con1 SET DEBUG_SYNC = "wait_after_query_cache_invalidate SIGNAL parked WAIT_FOR go"; --echo # Send concurrent insert, will wait in the query cache table invalidate --send INSERT INTO t1 VALUES (4) connection default; ---echo # Switch to connection default --echo # Wait for concurrent insert to reach the debug point SET DEBUG_SYNC = "now WAIT_FOR parked"; connection con2; ---echo # Switch to connection con2 --echo # Send SELECT that shouldn't be cached SELECT * FROM t1; connection default; ---echo # Switch to connection default --echo # Notify the concurrent insert to proceed SET DEBUG_SYNC = "now SIGNAL go"; connection con1; ---echo # Switch to connection con1 --echo # Gather insert result --reap SHOW STATUS LIKE "Qcache_queries_in_cache"; @@ -100,7 +95,6 @@ SHOW STATUS LIKE "Qcache_queries_in_cache"; SELECT * FROM t1; SHOW STATUS LIKE "Qcache_queries_in_cache"; ---echo # Disconnect disconnect con1; disconnect con2; @@ -140,7 +134,6 @@ connect (thd3, localhost, root, ,test); connect (thd1, localhost, root, ,test); connection thd1; ---echo =================================== Connection thd1 --echo ** --echo ** Load Query Cache with a result set and one table. --echo ** @@ -162,13 +155,11 @@ SET DEBUG_SYNC="wait_in_query_cache_invalidate2 SIGNAL parked1_2 WAIT_FOR go1_2" --send DELETE FROM t1 WHERE a like '%a%'; connection default; ---echo =================================== Connection default --echo ** Assert that the expect process status is obtained. SET DEBUG_SYNC="now WAIT_FOR parked1_1"; -- echo ** connection thd2; ---echo =================================== Connection thd2 --echo ** On THD2: Insert a result into the cache. This attempt will be blocked --echo ** because of a debug hook placed just before the mutex lock after which --echo ** the first part of the result set is written. @@ -176,21 +167,18 @@ SET DEBUG_SYNC="wait_in_query_cache_insert SIGNAL parked2 WAIT_FOR go2 EXECUTE 1 --send SELECT SQL_CACHE * FROM t2 UNION SELECT * FROM t3 connection default; ---echo =================================== Connection default --echo ** Assert that the SELECT-stmt thread reaches the sync point. SET DEBUG_SYNC="now WAIT_FOR parked2"; --echo ** --echo ** connection thd3; ---echo =================================== Connection thd3 --echo ** On THD3: Insert another result into the cache and block on the same --echo ** debug hook. SET DEBUG_SYNC="wait_in_query_cache_insert SIGNAL parked3 WAIT_FOR go3 EXECUTE 1"; --send SELECT SQL_CACHE * FROM t4 UNION SELECT * FROM t5 connection default; ---echo =================================== Connection default --echo ** Assert that the SELECT-stmt thread reaches the sync point. SET DEBUG_SYNC="now WAIT_FOR parked3"; --echo ** @@ -225,20 +213,17 @@ SET DEBUG_SYNC="now SIGNAL go1_2"; --echo ************************************************************************* --echo ** No tables should be locked connection thd2; ---echo =================================== Connection thd2 reap; DELETE FROM t1; DELETE FROM t2; DELETE FROM t3; connection thd3; ---echo =================================== Connection thd3 reap; DELETE FROM t4; DELETE FROM t5; connection thd1; ---echo =================================== Connection thd1 reap; --echo ** Done. @@ -278,23 +263,19 @@ connect(con1,localhost,root,,test,,); connect(con2,localhost,root,,test,,); connection con1; ---echo # Switch to connection con1 SET DEBUG_SYNC = "wait_in_query_cache_invalidate2 SIGNAL parked WAIT_FOR go"; --echo # Send INSERT, will wait in the query cache table invalidation --send INSERT INTO t1 VALUES (4); connection default; ---echo # Switch to connection default --echo # Wait for insert to reach the debug point SET DEBUG_SYNC = "now WAIT_FOR parked"; connection con2; ---echo # Switch to connection con2 --echo # Send a query that should wait on the query cache lock --send RESET QUERY CACHE connection default; ---echo # Switch to connection default --echo # Wait for the state to be reflected in the processlist let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -304,12 +285,10 @@ let $wait_condition= SET DEBUG_SYNC="now SIGNAL go"; connection con1; ---echo # Reap con1 and disconnect --reap disconnect con1; connection con2; ---echo # Reap con2 and disconnect --reap disconnect con2; diff --git a/mysql-test/t/read_only.test b/mysql-test/t/read_only.test index 3e5d4fc8ce1..3e970fc6da7 100644 --- a/mysql-test/t/read_only.test +++ b/mysql-test/t/read_only.test @@ -18,15 +18,12 @@ DROP TABLE IF EXISTS t1,t2,t3; create user test@localhost; grant CREATE, SELECT, DROP on *.* to test@localhost; ---echo connect (con1,localhost,test,,test); connect (con1,localhost,test,,test); ---echo connection default; connection default; set global read_only=0; ---echo connection con1; connection con1; create table t1 (a int); @@ -36,7 +33,6 @@ insert into t1 values(1); create table t2 select * from t1; ---echo connection default; connection default; set global read_only=1; @@ -46,7 +42,6 @@ set global read_only=1; create table t3 (a int); drop table t3; ---echo connection con1; connection con1; select @@global.read_only; @@ -123,16 +118,13 @@ insert into t1 values(1); # - is an error in the same connection # - is ok in a different connection ---echo connection default; connection default; set global read_only=0; lock table t1 write; ---echo connection con1; connection con1; lock table t2 write; ---echo connection default; connection default; --error ER_LOCK_OR_ACTIVE_TRANSACTION set global read_only=1; @@ -142,7 +134,6 @@ unlock tables ; --echo send set global read_only=1; send set global read_only=1; ---echo connection con1; connection con1; select @@global.read_only; unlock tables ; @@ -150,7 +141,6 @@ let $wait_condition= SELECT @@global.read_only= 1; --source include/wait_condition.inc select @@global.read_only; ---echo connection default; connection default; --echo reap; reap; @@ -159,16 +149,13 @@ reap; # - is an error in the same connection # - is ok in a different connection ---echo connection default; connection default; set global read_only=0; lock table t1 read; ---echo connection con1; connection con1; lock table t2 read; ---echo connection default; connection default; --error ER_LOCK_OR_ACTIVE_TRANSACTION set global read_only=1; @@ -179,28 +166,23 @@ unlock tables ; set global read_only=1; select @@global.read_only; ---echo connection con1; connection con1; select @@global.read_only; unlock tables ; ---echo connection default; connection default; # pending transaction / READ_ONLY # - is an error in the same connection # - is ok in a different connection ---echo connection default; connection default; set global read_only=0; BEGIN; ---echo connection con1; connection con1; BEGIN; ---echo connection default; connection default; --error ER_LOCK_OR_ACTIVE_TRANSACTION set global read_only=1; @@ -208,7 +190,6 @@ ROLLBACK; set global read_only=1; ---echo connection con1; connection con1; select @@global.read_only; ROLLBACK; @@ -217,26 +198,21 @@ ROLLBACK; # - in the same SUPER connection # - in another SUPER connection ---echo connection default; connection default; set global read_only=0; flush tables with read lock; set global read_only=1; unlock tables; ---echo connect (root2,localhost,root,,test); connect (root2,localhost,root,,test); ---echo connection default; connection default; set global read_only=0; flush tables with read lock; ---echo connection root2; connection root2; set global read_only=1; ---echo connection default; connection default; select @@global.read_only; unlock tables; @@ -256,7 +232,6 @@ drop temporary table if exists ttt; # # Cleanup # ---echo connection default; connection default; set global read_only=0; disconnect con1; @@ -283,18 +258,14 @@ grant all on mysqltest_db2.* to `mysqltest_u1`@`%`; create database mysqltest_db1; grant all on mysqltest_db1.* to `mysqltest_u1`@`%`; flush privileges; ---echo connect (con_bug27440,127.0.0.1,mysqltest_u1,,test,MASTER_MYPORT,); connect (con_bug27440,127.0.0.1,mysqltest_u1,,test,$MASTER_MYPORT,); ---echo connection con_bug27440; connection con_bug27440; --error ER_OPTION_PREVENTS_STATEMENT create database mysqltest_db2; show databases like '%mysqltest_db2%'; --error ER_OPTION_PREVENTS_STATEMENT drop database mysqltest_db1; ---echo disconnect con_bug27440; disconnect con_bug27440; ---echo connection default; connection default; delete from mysql.user where User like 'mysqltest_%'; delete from mysql.db where User like 'mysqltest_%'; diff --git a/mysql-test/t/read_only_innodb.test b/mysql-test/t/read_only_innodb.test index f404ba17579..9ba3ccaca07 100644 --- a/mysql-test/t/read_only_innodb.test +++ b/mysql-test/t/read_only_innodb.test @@ -84,19 +84,15 @@ COMMIT; connection default; UNLOCK TABLES; ---echo connection con1; connection con1; lock table t1 read; ---echo connection default; connection default; set global read_only=1; ---echo connection con1; connection con1; unlock tables; ---echo connection default; connection default; SET GLOBAL read_only=0; @@ -127,7 +123,6 @@ GRANT CREATE TEMPORARY TABLES, DROP, INSERT, DELETE, UPDATE, SELECT, LOCK TABLES ON db1.* TO bug33669@localhost; SET GLOBAL READ_ONLY = ON; connect(con1,localhost,bug33669,,db1); ---echo # Connection con1 (user bug33669): --echo --echo # Create, insert and drop temporary table: diff --git a/mysql-test/t/schema.test b/mysql-test/t/schema.test index 6af7ee20b02..8f9047e2e3f 100644 --- a/mysql-test/t/schema.test +++ b/mysql-test/t/schema.test @@ -27,7 +27,6 @@ DROP SCHEMA IF EXISTS schema1; connect(con2, localhost, root); ---echo # Connection default connection default; CREATE SCHEMA schema1; @@ -36,11 +35,9 @@ CREATE TABLE schema1.t1 (a INT); SET autocommit= FALSE; INSERT INTO schema1.t1 VALUES (1); ---echo # Connection 2 connection con2; --send DROP SCHEMA schema1 ---echo # Connection default connection default; let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist WHERE state= 'Waiting for table metadata lock' @@ -52,11 +49,9 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist ALTER SCHEMA schema1 DEFAULT CHARACTER SET utf8; SET autocommit= TRUE; ---echo # Connection 2 connection con2; --reap ---echo # Connection default connection default; disconnect con2; @@ -71,17 +66,14 @@ DROP SCHEMA IF EXISTS schema1; connect (con2, localhost, root); ---echo # Connection default connection default; CREATE SCHEMA schema1; CREATE TABLE schema1.t1 (id INT); LOCK TABLE schema1.t1 WRITE; ---echo # Connection con2 connection con2; --send DROP SCHEMA schema1 ---echo # Connection default connection default; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for schema metadata lock' and info='DROP SCHEMA schema1'; @@ -95,11 +87,9 @@ CREATE SCHEMA IF NOT EXISTS schema1; --echo # UNLOCK TABLES so DROP SCHEMA can continue. UNLOCK TABLES; ---echo # Connection con2 connection con2; --reap ---echo # Connection default connection default; disconnect con2; @@ -112,22 +102,18 @@ CREATE DATABASE db1; CREATE TABLE db1.t1 (a INT); INSERT INTO db1.t1 VALUES (1), (2); ---echo # Connection con1 connect (con1, localhost, root); HANDLER db1.t1 OPEN; ---echo # Connection default connection default; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection con2 connect (con2, localhost, root); let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for table metadata lock' AND info='DROP DATABASE db1'; --source include/wait_condition.inc ---echo # Connection con1 connection con1; # All these statements before resulted in deadlock. CREATE DATABASE db2; @@ -135,7 +121,6 @@ ALTER DATABASE db2 DEFAULT CHARACTER SET utf8; DROP DATABASE db2; HANDLER t1 CLOSE; ---echo # Connection default connection default; --echo # Reaping: DROP DATABASE db1 --reap @@ -156,20 +141,17 @@ DROP DATABASE IF EXISTS db2; connect (con2, localhost, root); connect (con3, localhost, root); ---echo # Connection default connection default; CREATE DATABASE db1; CREATE TABLE db1.t1 (id INT); START TRANSACTION; INSERT INTO db1.t1 VALUES (1); ---echo # Connection 2 connection con2; --echo # DROP DATABASE should block due to the active transaction --echo # Sending: --send DROP DATABASE db1 ---echo # Connection 3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='Waiting for table metadata lock' and info='DROP DATABASE db1'; @@ -179,17 +161,14 @@ CREATE DATABASE db2; ALTER DATABASE db2 DEFAULT CHARACTER SET utf8; DROP DATABASE db2; ---echo # Connection default connection default; --echo # End the transaction so DROP DATABASE db1 can continue COMMIT; ---echo # Connection 2 connection con2; --echo # Reaping: DROP DATABASE db1 --reap ---echo # Connection default; connection default; disconnect con2; disconnect con3; diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test index d9aed952fce..a14c42d8ade 100644 --- a/mysql-test/t/show_check.test +++ b/mysql-test/t/show_check.test @@ -1232,7 +1232,6 @@ connection default; CREATE TABLE t1 (i INT PRIMARY KEY); LOCK TABLE t1 WRITE; ---echo # Switching to connection 'con1'. connection con1; --echo # This statement used to be blocked. SHOW CREATE TABLE t1; @@ -1240,7 +1239,6 @@ SHOW CREATE TABLE t1; disconnect con1; --source include/wait_until_disconnected.inc ---echo # Switching to connection 'default'. connection default; UNLOCK TABLES; DROP TABLE t1; @@ -1257,22 +1255,18 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1(a INT); ---echo # Connection con1 connect (con1,localhost,root); LOCK TABLE t1 WRITE; ---echo # Connection default connection default; START TRANSACTION; SHOW CREATE TABLE t1; ---echo # Connection con1 connection con1; # Used to block ALTER TABLE t1 CHARACTER SET = utf8; UNLOCK TABLES; ---echo # Connection default connection default; COMMIT; disconnect con1; @@ -1292,27 +1286,22 @@ CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a = 1; --echo # Test 1: SHOW CREATE TRIGGER with WRITE locked table. ---echo # Connection con1 connect (con1, localhost, root); LOCK TABLE t1 WRITE; ---echo # Connection default connection default; # Should not block. SHOW CREATE TRIGGER t1_bi; ---echo # Connection con1 connection con1; UNLOCK TABLES; --echo # Test 2: ALTER TABLE with SHOW CREATE TRIGGER in transaction ---echo # Connection default connection default; START TRANSACTION; SHOW CREATE TRIGGER t1_bi; ---echo # Connection con1 connection con1; # Should not block. ALTER TABLE t1 CHARACTER SET = utf8; @@ -1320,7 +1309,6 @@ ALTER TABLE t1 CHARACTER SET = utf8; disconnect con1; --source include/wait_until_disconnected.inc ---echo # Connection default connection default; COMMIT; DROP TRIGGER t1_bi; diff --git a/mysql-test/t/show_grants_with_plugin-7985.test b/mysql-test/t/show_grants_with_plugin-7985.test index 9c05cb2e06d..84f71c72667 100644 --- a/mysql-test/t/show_grants_with_plugin-7985.test +++ b/mysql-test/t/show_grants_with_plugin-7985.test @@ -1,5 +1,4 @@ --source include/not_embedded.inc ---enable_connect_log call mtr.add_suppression("password and an authentication plugin"); --echo # diff --git a/mysql-test/t/sp-lock.test b/mysql-test/t/sp-lock.test index a01c9e19908..83ea07d4bda 100644 --- a/mysql-test/t/sp-lock.test +++ b/mysql-test/t/sp-lock.test @@ -142,7 +142,6 @@ drop temporary table t1; --echo # connection, try to use the routine. --echo # That should block on the pending exclusive lock. --echo # ---echo # Establish helper connections. connect(con1, localhost, root,,); connect(con2, localhost, root,,); connect(con3, localhost, root,,); @@ -150,7 +149,6 @@ connect(con3, localhost, root,,); --echo # --echo # Test DROP PROCEDURE. --echo # ---echo # --> connection default connection default; create procedure p1() begin end; delimiter |; @@ -162,11 +160,9 @@ end| delimiter ;| begin; select f1(); ---echo # --> connection con1 connection con1; --echo # Sending 'drop procedure p1'... send drop procedure p1; ---echo # --> connection con2 connection con2; --echo # Waiting for 'drop procedure t1' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -176,24 +172,19 @@ info='drop procedure p1'; --echo # Demonstrate that there is a pending exclusive lock. --echo # Sending 'select f1()'... send select f1(); ---echo # --> connection con3 connection con3; --echo # Waiting for 'select f1()' to get blocked by a pending MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for stored procedure metadata lock' and info='select f1()'; ---echo # --> connection default connection default; commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'drop procedure p1'... reap; ---echo # --> connection con2 connection con2; --echo # Reaping 'select f1()' --error ER_SP_DOES_NOT_EXIST reap; ---echo # --> connection default connection default; --echo # @@ -202,11 +193,9 @@ connection default; create procedure p1() begin end; begin; select f1(); ---echo # --> connection con1 connection con1; --echo # Sending 'create procedure p1'... send create procedure p1() begin end; ---echo # --> connection con2 connection con2; --echo # Waiting for 'create procedure t1' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -216,20 +205,16 @@ info='create procedure p1() begin end'; --echo # Demonstrate that there is a pending exclusive lock. --echo # Sending 'select f1()'... send select f1(); ---echo # --> connection con3 connection con3; --echo # Waiting for 'select f1()' to get blocked by a pending MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for stored procedure metadata lock' and info='select f1()'; ---echo # --> connection default connection default; commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'create procedure p1'... --error ER_SP_ALREADY_EXISTS reap; ---echo # --> connection con2 connection con2; --echo # Reaping 'select f1()' reap; @@ -240,11 +225,9 @@ connection default; --echo # begin; select f1(); ---echo # --> connection con1 connection con1; --echo # Sending 'alter procedure p1'... send alter procedure p1 contains sql; ---echo # --> connection con2 connection con2; --echo # Waiting for 'alter procedure t1' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -254,23 +237,18 @@ info='alter procedure p1 contains sql'; --echo # Demonstrate that there is a pending exclusive lock. --echo # Sending 'select f1()'... send select f1(); ---echo # --> connection con3 connection con3; --echo # Waiting for 'select f1()' to get blocked by a pending MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for stored procedure metadata lock' and info='select f1()'; ---echo # --> connection default connection default; commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'alter procedure p1'... reap; ---echo # --> connection con2 connection con2; --echo # Reaping 'select f1()' reap; ---echo # --> connection default connection default; --echo # @@ -278,11 +256,9 @@ connection default; --echo # begin; select f1(); ---echo # --> connection con1 connection con1; --echo # Sending 'drop function f1'... send drop function f1; ---echo # --> connection con2 connection con2; --echo # Waiting for 'drop function f1' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -292,24 +268,19 @@ info='drop function f1'; --echo # Demonstrate that there is a pending exclusive lock. --echo # Sending 'select f1()'... send select f1(); ---echo # --> connection con3 connection con3; --echo # Waiting for 'select f1()' to get blocked by a pending MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for stored function metadata lock' and info='select f1()'; ---echo # --> connection default connection default; commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'drop function f1'... reap; ---echo # --> connection con2 connection con2; --echo # Reaping 'select f1()' --error ER_SP_DOES_NOT_EXIST reap; ---echo # --> connection default connection default; --echo # @@ -318,11 +289,9 @@ connection default; create function f1() returns int return 1; begin; select f1(); ---echo # --> connection con1 connection con1; --echo # Sending 'create function f1'... send create function f1() returns int return 2; ---echo # --> connection con2 connection con2; --echo # Waiting for 'create function f1' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -332,24 +301,19 @@ info='create function f1() returns int return 2'; --echo # Demonstrate that there is a pending exclusive lock. --echo # Sending 'select f1()'... send select f1(); ---echo # --> connection con3 connection con3; --echo # Waiting for 'select f1()' to get blocked by a pending MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for stored function metadata lock' and info='select f1()'; ---echo # --> connection default connection default; commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'create function f1'... --error ER_SP_ALREADY_EXISTS reap; ---echo # --> connection con2 connection con2; --echo # Reaping 'select f1()' reap; ---echo # --> connection default connection default; --echo # @@ -357,11 +321,9 @@ connection default; --echo # begin; select f1(); ---echo # --> connection con1 connection con1; --echo # Sending 'alter function f1'... send alter function f1 contains sql; ---echo # --> connection con2 connection con2; --echo # Waiting for 'alter function f1' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -371,23 +333,18 @@ info='alter function f1 contains sql'; --echo # Demonstrate that there is a pending exclusive lock. --echo # Sending 'select f1()'... send select f1(); ---echo # --> connection con3 connection con3; --echo # Waiting for 'select f1()' to get blocked by a pending MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for stored function metadata lock' and info='select f1()'; ---echo # --> connection default connection default; commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'alter function f1'... reap; ---echo # --> connection con2 connection con2; --echo # Reaping 'select f1()' reap; ---echo # --> connection default connection default; drop function f1; drop procedure p1; @@ -427,13 +384,11 @@ call p4(); prepare stmt from "call p4()"; execute stmt; execute stmt; ---echo # --> connection con1 connection con1; drop procedure p1; drop procedure p2; drop procedure p3; drop procedure p4; ---echo # --> connection default connection default; --echo # This is to verify there was no implicit commit. rollback to savepoint sv; @@ -456,25 +411,20 @@ create trigger t1_ai after insert on t1 for each row insert into t2 (a, b) values (new.a, f1()); begin; insert into t1 (a) values (1); ---echo # --> connection con1 connection con1; --echo # Sending 'drop function f1' send drop function f1; ---echo # --> connection con2 connection con2; --echo # Waiting for 'drop function f1' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for stored function metadata lock' and info='drop function f1'; --source include/wait_condition.inc ---echo # --> connnection default connection default; commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'drop function f1'... reap; ---echo # --> connection default connection default; --echo # --echo # A function is used from a view. @@ -483,25 +433,20 @@ create function f1() returns int return 1; create view v1 as select f1() as a; begin; select * from v1; ---echo # --> connection con1 connection con1; --echo # Sending 'drop function f1' send drop function f1; ---echo # --> connection con2 connection con2; --echo # Waiting for 'drop function f1' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for stored function metadata lock' and info='drop function f1'; --source include/wait_condition.inc ---echo # --> connnection default connection default; commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'drop function f1'... reap; ---echo # --> connection default connection default; --echo # --echo # A procedure is used from a function. @@ -517,25 +462,20 @@ delimiter ;| create procedure p1(out v_out int) set v_out=3; begin; select * from v1; ---echo # --> connection con1 connection con1; --echo # Sending 'drop procedure p1' send drop procedure p1; ---echo # --> connection con2 connection con2; --echo # Waiting for 'drop procedure p1' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for stored procedure metadata lock' and info='drop procedure p1'; --source include/wait_condition.inc ---echo # --> connnection default connection default; commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'drop procedure p1'... reap; ---echo # --> connection default connection default; --echo # @@ -549,25 +489,20 @@ create trigger t1_ai after insert on t1 for each row insert into t2 (a, b) values (new.a, (select max(a) from v1)); begin; insert into t1 (a) values (3); ---echo # --> connection con1 connection con1; --echo # Sending 'drop function f2' send drop function f2; ---echo # --> connection con2 connection con2; --echo # Waiting for 'drop function f2' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist where state='Waiting for stored function metadata lock' and info='drop function f2'; --source include/wait_condition.inc ---echo # --> connnection default connection default; commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'drop function f2'... reap; ---echo # --> connection default connection default; drop view v1; @@ -612,11 +547,9 @@ lock table v1 read; select * from v1; savepoint sv; select f2(); ---echo # --> connection con1 connection con1; --echo # Sending 'drop function f1'... send drop function f1; ---echo # --> connection con2 connection con2; --echo # Waiting for 'drop function f1' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -625,7 +558,6 @@ info='drop function f1'; --source include/wait_condition.inc --echo # Sending 'drop function f2'... send drop function f2; ---echo # --> connection default connection default; --echo # Waiting for 'drop function f2' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -633,18 +565,14 @@ where state='Waiting for stored function metadata lock' and info='drop function f2'; --source include/wait_condition.inc rollback to savepoint sv; ---echo # --> connection con2 connection con2; --echo # Reaping 'drop function f2'... reap; ---echo # --> connection default connection default; unlock tables; ---echo # --> connection con1 connection con1; --echo # Reaping 'drop function f1'... reap; ---echo # --> connection default connection default; --error ER_SP_DOES_NOT_EXIST drop function f1; @@ -683,18 +611,14 @@ begin execute stmt; end| delimiter ;| ---echo # --> connection con2 connection con2; prepare stmt from "select f2()"; ---echo # --> connection default connection default; begin; select f1(); ---echo # --> connection con1 connection con1; --echo # Sending 'alter function f1 ...'... send alter function f1 comment "comment"; ---echo # --> connection con2 connection con2; --echo # Waiting for 'alter function f1 ...' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -711,16 +635,13 @@ info='select f1() into @var'; --source include/wait_condition.inc --echo # Let 'alter function f1 ...' go through... commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'alter function f1 ...' reap; ---echo # --> connection con2 connection con2; --echo # Reaping 'call p1()'... reap; deallocate prepare stmt; ---echo # --> connection default connection default; drop function f1; drop function f2; @@ -739,11 +660,9 @@ drop procedure p1; create function f1() returns int return 1; begin; select f1(); ---echo # --> connection con1 connection con1; --echo # Sending 'alter function f1 ...'... send alter function f1 comment "comment"; ---echo # --> connection con2 connection con2; --echo # Waiting for 'alter function f1 ...' to get blocked on MDL lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -781,15 +700,12 @@ info='select f1() into @var'; --source include/wait_condition.inc --echo # Let 'alter function f1 ...' go through... commit; ---echo # --> connection con1 connection con1; --echo # Reaping 'alter function f1 ...' reap; ---echo # --> connection con2 connection con2; --echo # Reaping 'call p1()'... reap; ---echo # --> connection default connection default; drop function f1; drop function f2; @@ -817,14 +733,11 @@ begin return res; end| delimiter ;| ---echo # --> connection con1 connection con1; select get_lock("30977", 0); ---echo # --> connection default connection default; --echo # Sending 'select f3()'... send select f3(); ---echo # --> connection con1 connection con1; --echo # Waiting for 'select f3()' to get blocked on the user level lock... let $wait_condition=select count(*)=1 from information_schema.processlist @@ -834,7 +747,6 @@ where state='User lock' and info='select f1() into @var'; create function f4() returns int return 4; drop function f4; select release_lock("30977"); ---echo # --> connection default connection default; --echo # Reaping 'select f3()'... --echo # Routine 'f2()' should exist and get executed successfully. @@ -880,19 +792,15 @@ drop procedure p1; drop function f1; set @@session.max_sp_recursion_depth=default; ---echo # --> connection con1 connection con1; disconnect con1; --source include/wait_until_disconnected.inc ---echo # --> connection con2 connection con2; disconnect con2; --source include/wait_until_disconnected.inc ---echo # --> connection con3 connection con3; disconnect con3; --source include/wait_until_disconnected.inc ---echo # --> connection default connection default; @@ -914,17 +822,14 @@ delimiter ;| connect (con2, localhost, root); connect (con3, localhost, root); ---echo # Connection default connection default; SELECT get_lock("test", 10); ---echo # Connection 2 connection con2; --echo # Will halt before executing SHOW CREATE PROCEDURE p1 --echo # Sending: --send CALL p1() ---echo # Connection 3 connection con3; let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE state='User lock' and info='SELECT get_lock("test", 10)'; @@ -933,25 +838,20 @@ let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist DROP PROCEDURE p1; CREATE PROCEDURE p1() BEGIN END; ---echo # Connection default connection default; --echo # Resume CALL p1, now with new p1 SELECT release_lock("test"); ---echo # Connection 2 connection con2; --echo # Reaping: CALL p1() --reap ---echo # Connection 3 connection con3; disconnect con3; --source include/wait_until_disconnected.inc ---echo # Connection 2 connection con2; disconnect con2; --source include/wait_until_disconnected.inc ---echo # Connection default; connection default; DROP PROCEDURE p1; @@ -972,19 +872,16 @@ connect(con2, localhost, root); --echo # Test 1: Check that DROP DATABASE block if a function is used --echo # by an active transaction. ---echo # Connection default connection default; CREATE DATABASE db1; CREATE FUNCTION db1.f1() RETURNS INTEGER RETURN 1; START TRANSACTION; SELECT db1.f1(); ---echo # Connection con1 connection con1; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection default connection default; --echo # Waiting for DROP DATABASE to be blocked by the lock on f1() let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist @@ -993,7 +890,6 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist --source include/wait_condition.inc COMMIT; ---echo # Connection con1 connection con1; --echo # Reaping: DROP DATABASE db1 --reap @@ -1001,7 +897,6 @@ connection con1; --echo # Test 2: Check that DROP DATABASE blocks if a procedure is --echo # used by an active transaction. ---echo # Connection default connection default; CREATE DATABASE db1; CREATE PROCEDURE db1.p1() BEGIN END; @@ -1015,12 +910,10 @@ delimiter ;| START TRANSACTION; SELECT f1(); ---echo # Connection con1 connection con1; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection default connection default; --echo # Waiting for DROP DATABASE to be blocked by the lock on p1() let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist @@ -1029,7 +922,6 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist --source include/wait_condition.inc COMMIT; ---echo # Connection con1 connection con1; --echo # Reaping: DROP DATABASE db1 --reap @@ -1037,7 +929,6 @@ connection con1; --echo # Test 3: Check that DROP DATABASE is not selected as a victim if a --echo # deadlock is discovered with DML statements. ---echo # Connection default connection default; CREATE DATABASE db1; CREATE TABLE db1.t1 (a INT); @@ -1046,12 +937,10 @@ START TRANSACTION; # DROP DATABASE will lock tables (t1) before functions (f1) SELECT db1.f1(); ---echo # Connection con1 connection con1; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection default connection default; --echo # Waiting for DROP DATABASE to be blocked by the lock on f1() let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist @@ -1062,14 +951,12 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist SELECT * FROM db1.t1; COMMIT; ---echo # Connection con1 connection con1; --echo # Reaping: DROP DATABASE db1 --reap --echo # Test 4: Check that active DROP DATABASE blocks stored routine DDL. ---echo # Connection default connection default; CREATE DATABASE db1; CREATE FUNCTION db1.f1() RETURNS INTEGER RETURN 1; @@ -1077,12 +964,10 @@ CREATE FUNCTION db1.f2() RETURNS INTEGER RETURN 2; START TRANSACTION; SELECT db1.f2(); ---echo # Connection con1 connection con1; --echo # Sending: --send DROP DATABASE db1 ---echo # Connection con2 connection con2; --echo # Waiting for DROP DATABASE to be blocked by the lock on f2() let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist @@ -1092,7 +977,6 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist --echo # Sending: --send ALTER FUNCTION db1.f1 COMMENT "test" ---echo # Connection default connection default; --echo # Waiting for ALTER FUNCTION to be blocked by the schema lock on db1 let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist @@ -1101,14 +985,12 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist --source include/wait_condition.inc COMMIT; ---echo # Connection con1 connection con1; --echo # Reaping: DROP DATABASE db1 --reap disconnect con1; --source include/wait_until_disconnected.inc ---echo # Connection con2 connection con2; --echo # Reaping: ALTER FUNCTION f1 COMMENT 'test' --error ER_SP_DOES_NOT_EXIST @@ -1116,7 +998,6 @@ connection con2; disconnect con2; --source include/wait_until_disconnected.inc ---echo # Connection default connection default; DROP FUNCTION f1; diff --git a/mysql-test/t/sp-security.test b/mysql-test/t/sp-security.test index a5df4859d6b..f719cbff11c 100644 --- a/mysql-test/t/sp-security.test +++ b/mysql-test/t/sp-security.test @@ -580,8 +580,6 @@ drop database db_bug14533; # Setup the environment. ---echo ---echo ---> connection: root --connection con1root --disable_warnings @@ -602,8 +600,6 @@ GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_2@localhost; # test case (1). ---echo ---echo ---> connection: mysqltest_2_con --connection mysqltest_2_con USE mysqltest; @@ -614,8 +610,6 @@ CREATE FUNCTION wl2897_f1() RETURNS INT RETURN 1; # test case (2). ---echo ---echo ---> connection: mysqltest_1_con --connection mysqltest_1_con USE mysqltest; @@ -628,8 +622,6 @@ CREATE DEFINER=root@localhost FUNCTION wl2897_f2() RETURNS INT RETURN 2; # test case (3). ---echo ---echo ---> connection: mysqltest_2_con --connection mysqltest_2_con use mysqltest; @@ -640,8 +632,6 @@ CREATE DEFINER='a @ b @ c'@localhost FUNCTION wl2897_f3() RETURNS INT RETURN 3; # test case (4). ---echo ---echo ---> connection: con1root --connection con1root USE mysqltest; @@ -669,8 +659,6 @@ DROP DATABASE mysqltest; # Prepare environment. ---echo ---echo ---> connection: root --connection con1root --disable_warnings @@ -690,8 +678,6 @@ GRANT ALL PRIVILEGES ON mysqltest.* TO mysqltest_2@localhost; # Create a procedure/function under u1. ---echo ---echo ---> connection: mysqltest_1_con --connection mysqltest_1_con USE mysqltest; @@ -708,8 +694,6 @@ SELECT bug13198_f1(); # Check that u2 can call the procedure/function. ---echo ---echo ---> connection: mysqltest_2_con --connection mysqltest_2_con USE mysqltest; @@ -720,8 +704,6 @@ SELECT bug13198_f1(); # Drop user u1 (definer of the object); ---echo ---echo ---> connection: root --connection con1root --disconnect mysqltest_1_con @@ -730,8 +712,6 @@ DROP USER mysqltest_1@localhost; # Check that u2 can not call the procedure/function. ---echo ---echo ---> connection: mysqltest_2_con --connection mysqltest_2_con USE mysqltest; @@ -744,8 +724,6 @@ SELECT bug13198_f1(); # Cleanup. ---echo ---echo ---> connection: root --connection con1root --disconnect mysqltest_2_con @@ -767,8 +745,6 @@ user19857@localhost; SELECT Host,User,Password FROM mysql.user WHERE User='user19857'; --connect (mysqltest_2_con,localhost,user19857,meow,test) ---echo ---echo ---> connection: mysqltest_2_con --connection mysqltest_2_con USE test; @@ -790,8 +766,6 @@ SHOW CREATE PROCEDURE test.sp19857; DROP PROCEDURE IF EXISTS test.sp19857; ---echo ---echo ---> connection: root --connection con1root --disconnect mysqltest_2_con @@ -949,7 +923,6 @@ create database mysqltest_db; create user bug57061_user@localhost; create function mysqltest_db.f1() returns int return 0; create procedure mysqltest_db.p1() begin end; ---echo # Connect as user 'bug57061_user@localhost' connect (conn1, localhost, bug57061_user,,); --echo # Attempt to drop routine on which user doesn't have privileges --echo # should result in the same 'access denied' type of error whether @@ -962,7 +935,6 @@ drop procedure if exists mysqltest_db.p_does_not_exist; drop function if exists mysqltest_db.f1; --error ER_PROCACCESS_DENIED_ERROR drop procedure if exists mysqltest_db.p1; ---echo # Connection 'default'. connection default; disconnect conn1; drop user bug57061_user@localhost; @@ -983,23 +955,19 @@ CREATE PROCEDURE db1.p1() SELECT 1; CREATE USER user2@localhost IDENTIFIED BY ''; GRANT SELECT(db) ON mysql.proc TO user2@localhost; ---echo # Connection con2 as user2 connect (con2, localhost, user2); --echo # The statement below before disclosed info from body_utf8 column. --error ER_SP_DOES_NOT_EXIST SHOW CREATE PROCEDURE db1.p1; --echo # Check that SHOW works with SELECT grant on whole table ---echo # Connection default connection default; GRANT SELECT ON mysql.proc TO user2@localhost; ---echo # Connection con2 connection con2; --echo # This should work SHOW CREATE PROCEDURE db1.p1; ---echo # Connection default connection default; disconnect con2; DROP USER user2@localhost; @@ -1020,7 +988,6 @@ create procedure mysqltest_db.p1() begin end; --echo # Create user with no privileges on mysqltest_db database. create user bug12602983_user@localhost; ---echo # Connect as user 'bug12602983_user@localhost' connect (conn1, localhost, bug12602983_user,,); --echo # Attempt to execute routine on which user doesn't have privileges @@ -1041,7 +1008,6 @@ create view bug12602983_v1 as select mysqltest_db.f_does_not_exist(); --error ER_PROCACCESS_DENIED_ERROR create view bug12602983_v1 as select mysqltest_db.f1(); ---echo # Connection 'default'. connection default; disconnect conn1; drop user bug12602983_user@localhost; diff --git a/mysql-test/t/sp_notembedded.test b/mysql-test/t/sp_notembedded.test index d7aaaa4340f..c620f415e22 100644 --- a/mysql-test/t/sp_notembedded.test +++ b/mysql-test/t/sp_notembedded.test @@ -331,7 +331,6 @@ FLUSH PRIVILEGES; --echo # SELECT GET_LOCK('Bug44521', 0); --connect (con1,localhost,root,,) ---echo ** Connection con1 delimiter $; CREATE PROCEDURE p() BEGIN @@ -342,7 +341,6 @@ END$ delimiter ;$ --send CALL p(); --connection default ---echo ** Default connection let $wait_condition= SELECT count(*) = 1 FROM information_schema.processlist WHERE state = "User lock" AND info = "SELECT GET_LOCK('Bug44521', 100)"; @@ -420,14 +418,12 @@ use `my.db`; CREATE FUNCTION f1(a int) RETURNS INT RETURN a; ---echo # Create new connection. connect (addcon, localhost, root,,); connection addcon; USE `my.db`; SELECT f1(1); SELECT `my.db`.f1(2); ---echo # Switching to default connection. connection default; disconnect addcon; DROP DATABASE `my.db`; diff --git a/mysql-test/t/sp_sync.test b/mysql-test/t/sp_sync.test index 589832bb570..a5682fc572f 100644 --- a/mysql-test/t/sp_sync.test +++ b/mysql-test/t/sp_sync.test @@ -24,7 +24,6 @@ SET DEBUG_SYNC= 'RESET'; connect (con2, localhost, root); ---echo # Connection default connection default; CREATE FUNCTION f1() RETURNS INT RETURN 1; --echo # Get f1 cached @@ -34,7 +33,6 @@ SET DEBUG_SYNC= 'before_execute_sql_command SIGNAL before WAIT_FOR changed'; --echo # Sending: --send SELECT f1() ---echo # Connection 2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR before'; --echo # ... but before f1 is locked, change it. @@ -42,7 +40,6 @@ DROP FUNCTION f1; CREATE FUNCTION f1() RETURNS INT RETURN 2; SET DEBUG_SYNC= 'now SIGNAL changed'; ---echo # Connection default --echo # We should now get '2' and not '1'. connection default; --echo # Reaping: SELECT f1() @@ -66,25 +63,21 @@ DROP FUNCTION IF EXISTS f1; connect (con2, localhost, root); connect (con3, localhost, root); ---echo # Connection default connection default; CREATE FUNCTION f1() RETURNS INT RETURN 0; ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'after_wait_locked_pname SIGNAL locked WAIT_FOR issued'; --echo # con2 will now have an x-lock on f1 --echo # Sending: --send ALTER FUNCTION f1 COMMENT 'comment' ---echo # Connection default connection default; SET DEBUG_SYNC= 'now WAIT_FOR locked'; --disable_result_log --echo # This query will block due to the x-lock on f1 and back-off --send SHOW OPEN TABLES WHERE f1()=0 ---echo # Connection con3 connection con3; let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist WHERE state= 'Waiting for stored function metadata lock' @@ -93,7 +86,6 @@ let $wait_condition= SELECT COUNT(*)= 1 FROM information_schema.processlist --echo # Check that the IS query is blocked before releasing the x-lock SET DEBUG_SYNC= 'now SIGNAL issued'; ---echo # Connection default connection default; --echo # Reaping: ALTER FUNCTION f1 COMMENT 'comment' --reap @@ -116,7 +108,6 @@ CREATE PROCEDURE p1() SELECT COUNT(f1(a)) FROM t1, t0; INSERT INTO t0 VALUES(1); INSERT INTO t1 VALUES(1), (2); ---echo # Connection 2 connect (con2, localhost, root); CALL p1(); @@ -128,7 +119,6 @@ SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL locked_t1 WAIT_FOR go_for_t0 --echo # Sending: --send CALL p1() ---echo # Connection default connection default; SET DEBUG_SYNC= 'now WAIT_FOR locked_t1'; --echo # Issue LOCK TABLES statement which will enter in MDL deadlock @@ -138,12 +128,10 @@ SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL go_for_t0'; LOCK TABLES t0 WRITE, t1 WRITE; UNLOCK TABLES; ---echo # Connection 2 connection con2; --echo # Reaping: CALL p1() --reap; ---echo # Connection default connection default; disconnect con2; DROP PROCEDURE p1; diff --git a/mysql-test/t/ssl_connect.test b/mysql-test/t/ssl_connect.test index 05d6dc45c74..ce57e4f746d 100644 --- a/mysql-test/t/ssl_connect.test +++ b/mysql-test/t/ssl_connect.test @@ -4,12 +4,14 @@ # Repeat connect/disconnect let $i=100; +disable_connect_log; while ($i) { connect (test_con1,localhost,root,,,,,SSL); disconnect test_con1; dec $i; } +enable_connect_log; echo completed; ## This test file is for testing encrypted communication only, not other diff --git a/mysql-test/t/status.test b/mysql-test/t/status.test index 32b903c0265..e0b0d9c8838 100644 --- a/mysql-test/t/status.test +++ b/mysql-test/t/status.test @@ -30,7 +30,6 @@ show status like 'Table_lock%'; select * from information_schema.session_status where variable_name like 'Table_lock%'; connection con1; ---echo # Switched to connection: con1 set sql_log_bin=0; set @old_general_log = @@global.general_log; set global general_log = 'OFF'; @@ -45,18 +44,15 @@ insert into t1 values(1); select 1; connection con2; ---echo # Switched to connection: con2 lock tables t1 read; unlock tables; lock tables t1 read; connection con1; ---echo # Switched to connection: con1 let $ID= `select connection_id()`; --send update t1 set n = 3 connection con2; ---echo # Switched to connection: con2 # wait for the other query to start executing let $wait_condition= select 1 from INFORMATION_SCHEMA.PROCESSLIST where ID = $ID and STATE = "Waiting for table level lock"; @@ -64,7 +60,6 @@ let $wait_condition= select 1 from INFORMATION_SCHEMA.PROCESSLIST unlock tables; connection con1; ---echo # Switched to connection: con1 reap; show status like 'Table_locks_waited'; drop table t1; @@ -73,7 +68,6 @@ set global general_log = @old_general_log; disconnect con2; disconnect con1; connection default; ---echo # Switched to connection: default # End of 4.1 tests diff --git a/mysql-test/t/trans_read_only.test b/mysql-test/t/trans_read_only.test index f50fb7db376..38b2a833216 100644 --- a/mysql-test/t/trans_read_only.test +++ b/mysql-test/t/trans_read_only.test @@ -10,7 +10,7 @@ --echo # Check that the option was set by the .opt file. SELECT @@tx_read_only; ---echo # Also for new connections. Switching to con1 +--echo # Also for new connections. connect (con1, localhost, root); SELECT @@tx_read_only; SET SESSION TRANSACTION READ WRITE; @@ -18,7 +18,6 @@ SELECT @@tx_read_only; disconnect con1; --source include/wait_until_disconnected.inc ---echo # Connection default connection default; SELECT @@tx_read_only; diff --git a/mysql-test/t/trigger-compat.test b/mysql-test/t/trigger-compat.test index c627d1a6040..2d949b0c91e 100644 --- a/mysql-test/t/trigger-compat.test +++ b/mysql-test/t/trigger-compat.test @@ -42,8 +42,6 @@ GRANT CREATE, TRIGGER ON mysqltest_db1.* TO mysqltest_dfn@localhost; --connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1) --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con CREATE TABLE t1(num_value INT); CREATE TABLE t2(user_str TEXT); diff --git a/mysql-test/t/trigger-trans.test b/mysql-test/t/trigger-trans.test index c17202055e1..17656c3516e 100644 --- a/mysql-test/t/trigger-trans.test +++ b/mysql-test/t/trigger-trans.test @@ -191,7 +191,6 @@ drop table t1,t2; --echo # AND TRIGGER HANDLERS TO BE IGNORED --echo #Code fixed in Bug#16041903 ---enable_connect_log CREATE TABLE t1 (id int unsigned PRIMARY KEY, val int DEFAULT 0) ENGINE=InnoDB; @@ -232,7 +231,5 @@ connection default; DROP TABLE t3, t2, t1; ---disable_connect_log - # Wait till we reached the initial number of concurrent sessions --source include/wait_until_count_sessions.inc diff --git a/mysql-test/t/trigger_notembedded.test b/mysql-test/t/trigger_notembedded.test index f0c565be41f..df5637790af 100644 --- a/mysql-test/t/trigger_notembedded.test +++ b/mysql-test/t/trigger_notembedded.test @@ -47,8 +47,6 @@ GRANT CREATE ON mysqltest_db1.* TO mysqltest_dfn@localhost; --connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1) --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con CREATE TABLE t1(num_value INT); CREATE TABLE t2(user_str TEXT); @@ -56,8 +54,6 @@ CREATE TABLE t2(user_str TEXT); --disconnect wl2818_definer_con --connection default ---echo ---echo ---> connection: default GRANT INSERT, DROP ON mysqltest_db1.t1 TO mysqltest_dfn@localhost; GRANT INSERT, DROP ON mysqltest_db1.t2 TO mysqltest_dfn@localhost; @@ -67,15 +63,11 @@ GRANT INSERT, DROP ON mysqltest_db1.t2 TO mysqltest_dfn@localhost; # --connection default ---echo ---echo ---> connection: default GRANT SUPER ON *.* TO mysqltest_dfn@localhost; --connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1) --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con --error ER_TABLEACCESS_DENIED_ERROR CREATE TRIGGER trg1 AFTER INSERT ON t1 @@ -89,15 +81,11 @@ CREATE TRIGGER trg1 AFTER INSERT ON t1 # --connection default ---echo ---echo ---> connection: default GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost; --connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1) --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con CREATE TRIGGER trg1 AFTER INSERT ON t1 FOR EACH ROW @@ -106,15 +94,11 @@ CREATE TRIGGER trg1 AFTER INSERT ON t1 --disconnect wl2818_definer_con --connection default ---echo ---echo ---> connection: default REVOKE TRIGGER ON mysqltest_db1.t1 FROM mysqltest_dfn@localhost; --connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1) --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con --error ER_TABLEACCESS_DENIED_ERROR DROP TRIGGER trg1; @@ -127,8 +111,6 @@ DROP TRIGGER trg1; --connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1) --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con --error ER_TABLEACCESS_DENIED_ERROR INSERT INTO t1 VALUES(0); @@ -136,15 +118,11 @@ INSERT INTO t1 VALUES(0); --disconnect wl2818_definer_con --connection default ---echo ---echo ---> connection: default GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost; --connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1) --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con INSERT INTO t1 VALUES(0); @@ -156,8 +134,6 @@ TRUNCATE TABLE t2; --disconnect wl2818_definer_con --connection default ---echo ---echo ---> connection: default REVOKE SUPER ON *.* FROM mysqltest_dfn@localhost; @@ -175,16 +151,12 @@ REVOKE SUPER ON *.* FROM mysqltest_dfn@localhost; --connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1) --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con CREATE TRIGGER trg1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t2 VALUES(CURRENT_USER()); --connection default ---echo ---echo ---> connection: default # Setup definer's privileges. @@ -200,8 +172,6 @@ GRANT SELECT ON mysqltest_db1.t2 TO 'mysqltest_inv'@localhost; --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con use mysqltest_db1; @@ -212,8 +182,6 @@ SELECT * FROM t2; --connect (wl2818_invoker_con,localhost,mysqltest_inv,,mysqltest_db1) --connection wl2818_invoker_con ---echo ---echo ---> connection: wl2818_invoker_con use mysqltest_db1; @@ -234,16 +202,12 @@ SELECT * FROM t2; # --connection default ---echo ---echo ---> connection: default use mysqltest_db1; REVOKE INSERT ON mysqltest_db1.t2 FROM mysqltest_dfn@localhost; --connection wl2818_invoker_con ---echo ---echo ---> connection: wl2818_invoker_con use mysqltest_db1; @@ -273,8 +237,6 @@ SELECT * FROM t2; # --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con use mysqltest_db1; @@ -289,8 +251,6 @@ CREATE DEFINER='mysqltest_inv'@'localhost' SET @new_sum = 0; --connection default ---echo ---echo ---> connection: default use mysqltest_db1; @@ -299,8 +259,6 @@ GRANT SUPER ON *.* TO mysqltest_dfn@localhost; --disconnect wl2818_definer_con --connect (wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1) --connection wl2818_definer_con ---echo ---echo ---> connection: wl2818_definer_con CREATE DEFINER='mysqltest_inv'@'localhost' TRIGGER trg1 BEFORE INSERT ON t1 @@ -388,8 +346,6 @@ SELECT * FROM INFORMATION_SCHEMA.TRIGGERS ORDER BY trigger_name; # --connection default ---echo ---echo ---> connection: default DROP USER mysqltest_dfn@localhost; DROP USER mysqltest_inv@localhost; @@ -445,8 +401,6 @@ SET @mysqltest_var = NULL; # NEW/OLD variables. --connection default ---echo ---echo ---> connection: default use mysqltest_db1; @@ -454,8 +408,6 @@ GRANT DELETE ON mysqltest_db1.* TO mysqltest_u1@localhost; SHOW GRANTS FOR mysqltest_u1@localhost; --connection bug15166_u1_con ---echo ---echo ---> connection: bug15166_u1_con use mysqltest_db1; @@ -468,8 +420,6 @@ CREATE TRIGGER t1_trg_after_delete AFTER DELETE ON t1 # - check that UPDATE is required to modify the value; --connection default ---echo ---echo ---> connection: default use mysqltest_db1; @@ -480,8 +430,6 @@ GRANT UPDATE(col) ON mysqltest_db1.t3 TO mysqltest_u1@localhost; GRANT UPDATE(col) ON mysqltest_db1.t4 TO mysqltest_u1@localhost; --connection bug15166_u1_con ---echo ---echo ---> connection: bug15166_u1_con use mysqltest_db1; @@ -530,8 +478,6 @@ CREATE TRIGGER t4_trg_before_insert BEFORE INSERT ON t4 # - check that SELECT is not enough to modify the value; --connection default ---echo ---echo ---> connection: default use mysqltest_db1; @@ -546,8 +492,6 @@ GRANT SELECT(col) on mysqltest_db1.t3 TO mysqltest_u1@localhost; GRANT SELECT(col) on mysqltest_db1.t4 TO mysqltest_u1@localhost; --connection bug15166_u1_con ---echo ---echo ---> connection: bug15166_u1_con use mysqltest_db1; @@ -604,8 +548,6 @@ DROP TRIGGER t4_trg_err_2; # - check that UPDATE is required to modify the value; --connection default ---echo ---echo ---> connection: default use mysqltest_db1; @@ -648,8 +590,6 @@ SELECT * FROM t4; # - check that SELECT is not enough to modify the value; --connection default ---echo ---echo ---> connection: default use mysqltest_db1; @@ -959,13 +899,10 @@ drop table if exists t1; create table t1 (i int); connect (flush,localhost,root,,test,,); connection default; ---echo connection: default lock tables t1 write; connection flush; ---echo connection: flush --send flush tables with read lock; connection default; ---echo connection: default let $wait_condition= select count(*) = 1 from information_schema.processlist where state = "Waiting for global read lock"; @@ -973,7 +910,6 @@ let $wait_condition= create trigger t1_bi before insert on t1 for each row begin end; unlock tables; connection flush; ---echo connection: flush --reap unlock tables; connection default; diff --git a/mysql-test/t/truncate_coverage.test b/mysql-test/t/truncate_coverage.test index 6f5c773ac6a..0834f7a3eca 100644 --- a/mysql-test/t/truncate_coverage.test +++ b/mysql-test/t/truncate_coverage.test @@ -27,16 +27,12 @@ INSERT INTO t1 VALUES (1); # TRUNCATE shall block on this metadata lock. # We can't use normal DML as such statements would also block LOCK TABLES. # ---echo # ---echo # connection con1 --connect (con1, localhost, root,,) HANDLER t1 OPEN; # # Get connection id of default connection. # Lock the table and start TRUNCATE, which will block on MDL upgrade. # ---echo # ---echo # connection default --connection default let $ID= `SELECT @id := CONNECTION_ID()`; LOCK TABLE t1 WRITE; @@ -47,27 +43,19 @@ send TRUNCATE TABLE t1; # Kill the TRUNCATE query. This shall result in an error return # from wait_while_table_is_used(). # ---echo # ---echo # connection con2 --connect (con2, localhost, root,,) SET DEBUG_SYNC='now WAIT_FOR waiting'; let $invisible_assignment_in_select = `SELECT @id := $ID`; KILL QUERY @id; --disconnect con2 ---echo # ---echo # connection default --connection default --error ER_QUERY_INTERRUPTED reap; UNLOCK TABLES; ---echo # ---echo # connection con1 --connection con1 --echo # Release shared metadata lock by closing HANDLER. HANDLER t1 CLOSE; --disconnect con1 ---echo # ---echo # connection default --connection default DROP TABLE t1; SET DEBUG_SYNC='RESET'; @@ -81,15 +69,11 @@ INSERT INTO t1 VALUES (1); # TRUNCATE shall block on this metadata lock. # We can't use normal DML as such statements would also block LOCK TABLES. # ---echo # ---echo # connection con1 --connect (con1, localhost, root,,) HANDLER t1 OPEN; # # Lock the table and start TRUNCATE, which will block on MDL upgrade. # ---echo # ---echo # connection default --connection default LOCK TABLE t1 WRITE; SET DEBUG_SYNC='mdl_upgrade_lock SIGNAL waiting'; @@ -98,19 +82,13 @@ send TRUNCATE TABLE t1; # Remove datafile. # Commit to let TRUNCATE continue. # ---echo # ---echo # connection con2 --connect (con2, localhost, root,,) SET DEBUG_SYNC='now WAIT_FOR waiting'; --remove_file $MYSQLD_DATADIR/test/t1.frm --disconnect con2 ---echo # ---echo # connection con1 --connection con1 HANDLER t1 CLOSE; --disconnect con1 ---echo # ---echo # connection default --connection default --error ER_NO_SUCH_TABLE reap; @@ -128,8 +106,6 @@ INSERT INTO t1 VALUES (1); # Start a transaction and execute a DML in it. Since 5.4.4 this leaves # a shared meta data lock (MDL) behind. TRUNCATE shall block on it. # ---echo # ---echo # connection con1 --connect (con1, localhost, root,,) START TRANSACTION; INSERT INTO t1 VALUES (2); @@ -137,8 +113,6 @@ INSERT INTO t1 VALUES (2); # Get connection id of default connection. # Start TRUNCATE, which will block on acquire_exclusive_locks(). # ---echo # ---echo # connection default --connection default let $ID= `SELECT @id := CONNECTION_ID()`; SET DEBUG_SYNC='mdl_acquire_lock_wait SIGNAL waiting'; @@ -148,25 +122,17 @@ send TRUNCATE TABLE t1; # Kill the TRUNCATE query. This shall result in an error return # from wait_while_table_is_used(). # ---echo # ---echo # connection con1 --connection con1 SET DEBUG_SYNC='now WAIT_FOR waiting'; let $invisible_assignment_in_select = `SELECT @id := $ID`; KILL QUERY @id; ---echo # ---echo # connection default --connection default --error ER_QUERY_INTERRUPTED reap; ---echo # ---echo # connection con1 --connection con1 --echo # Release SW lock by committing transaction. COMMIT; --disconnect con1 ---echo # ---echo # connection default --connection default UNLOCK TABLES; DROP TABLE t1; @@ -187,19 +153,16 @@ CREATE TABLE t1(a INT) engine=memory; CREATE TABLE m1(a INT) engine=merge UNION(t1); connect(con2, localhost, root); ---echo # Connection con1 connect(con1, localhost, root); SET DEBUG_SYNC= 'open_tables_after_open_and_process_table SIGNAL opened WAIT_FOR dropped'; --echo # Sending: --send TRUNCATE TABLE m1 ---echo # Connection con2 connection con2; SET DEBUG_SYNC= 'now WAIT_FOR opened'; --echo # Sending: --send FLUSH TABLES ---echo # Connection default connection default; --echo # Waiting for FLUSH TABLES to be blocked. let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist @@ -207,7 +170,6 @@ let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist --source include/wait_condition.inc SET DEBUG_SYNC= 'now SIGNAL dropped'; ---echo # Connection con1 connection con1; --echo # Reaping: TRUNCATE TABLE m1 --error ER_WRONG_MRG_TABLE @@ -215,14 +177,12 @@ connection con1; disconnect con1; --source include/wait_until_disconnected.inc ---echo # Connection con2 connection con2; --echo # Reaping: FLUSH TABLES --reap disconnect con2; --source include/wait_until_disconnected.inc ---echo # Connection default connection default; SET DEBUG_SYNC= 'RESET'; DROP TABLE m1, t1; diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test index 8f29528ac25..4d97f380dff 100644 --- a/mysql-test/t/variables.test +++ b/mysql-test/t/variables.test @@ -562,7 +562,6 @@ select @@lc_time_names; select @@global.lc_time_names, @@lc_time_names; set @@global.lc_time_names=fr_FR; select @@global.lc_time_names, @@lc_time_names; ---echo New connection connect (con1,localhost,root,,); connection con1; select @@global.lc_time_names, @@lc_time_names; @@ -570,7 +569,6 @@ set @@lc_time_names=ru_RU; select @@global.lc_time_names, @@lc_time_names; disconnect con1; connection default; ---echo Returnung to default connection select @@global.lc_time_names, @@lc_time_names; set lc_time_names=default; select @@global.lc_time_names, @@lc_time_names; diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index 83b7e5839ef..d11b7f0bc37 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -4643,7 +4643,6 @@ DROP PROCEDURE IF EXISTS p1; connect (con2, localhost, root); connect (con3, localhost, root); ---echo # Connection default connection default; CREATE VIEW v1 AS SELECT schema_name FROM information_schema.schemata; @@ -4653,17 +4652,14 @@ CREATE PROCEDURE p1() INSERT INTO t1 SELECT * FROM v1; --echo # CALL p1() so the view is merged. CALL p1(); ---echo # Connection 3 connection con3; LOCK TABLE t1 READ; ---echo # Connection default connection default; --echo # Try to CALL p1() again, this time it should block for t1. --echo # Sending: --send CALL p1() ---echo # Connection 2 connection con2; let $wait_condition= SELECT COUNT(*) = 1 from information_schema.processlist @@ -4674,7 +4670,6 @@ let $wait_condition= --echo # Sending: --send DROP VIEW v1 ---echo # Connection 3 connection con3; let $wait_condition= SELECT COUNT(*) = 1 from information_schema.processlist @@ -4683,17 +4678,14 @@ let $wait_condition= --echo # Now allow CALL p1() to complete UNLOCK TABLES; ---echo # Connection default connection default; --echo # Reaping: CALL p1() --reap ---echo # Connection 2 connection con2; --echo # Reaping: DROP VIEW v1 --reap ---echo # Connection default connection default; DROP PROCEDURE p1; DROP TABLE t1; diff --git a/mysql-test/t/view_grant.test b/mysql-test/t/view_grant.test index 6d0cd8e5c28..a70241138aa 100644 --- a/mysql-test/t/view_grant.test +++ b/mysql-test/t/view_grant.test @@ -1197,8 +1197,6 @@ GRANT SELECT, DELETE ON mysqltest1.t4 TO mysqltest_u1@localhost; GRANT ALL PRIVILEGES ON mysqltest2.* TO mysqltest_u1@localhost; --connect (bug24040_con,localhost,mysqltest_u1,,mysqltest2) ---echo ---echo ---> connection: bug24040_con SELECT * FROM mysqltest1.t1; INSERT INTO mysqltest1.t2 VALUES(25); @@ -1238,8 +1236,6 @@ CREATE VIEW v42 AS SELECT c4, c2 FROM mysqltest1.t4, mysqltest1.t2; CREATE VIEW v43 AS SELECT c4, c3 FROM mysqltest1.t4, mysqltest1.t3; --connection default ---echo ---echo ---> connection: default SELECT * FROM mysqltest1.t1; SELECT * FROM mysqltest1.t2; @@ -1965,13 +1961,9 @@ GRANT SELECT ON t1 TO 'mysqluser1'@'%'; GRANT SELECT ON t2 TO 'mysqluser1'@'%'; GRANT SELECT ON v1_uses_t1 TO 'mysqluser1'@'%'; GRANT SELECT ON v1_uses_t2 TO 'mysqluser1'@'%'; ---echo # ---echo # Connection 'mysqluser1'. --connect (mysqluser1, localhost, mysqluser1,,mysqltest1) CREATE SQL SECURITY DEFINER VIEW v2_uses_t1 AS SELECT * FROM v1_uses_t1; CREATE SQL SECURITY DEFINER VIEW v2_uses_t2 AS SELECT * FROM v1_uses_t2; ---echo # ---echo # Connection 'default'. --connection default CREATE USER 'mysqluser2'@'%'; GRANT SELECT ON v2_uses_t1 TO 'mysqluser2'@'%'; @@ -1980,8 +1972,6 @@ GRANT SELECT ON t2 TO 'mysqluser2'@'%'; GRANT CREATE VIEW ON mysqltest1.* TO 'mysqluser2'@'%'; --echo # Make 'mysqluser1' unable to access t2. REVOKE SELECT ON t2 FROM 'mysqluser1'@'%'; ---echo # ---echo # Connection 'mysqluser2'. --connect (mysqluser2, localhost, mysqluser2,,mysqltest1) --echo # The below statement should succeed thanks to suid nature of v2_uses_t1. SELECT * FROM v2_uses_t1; @@ -1990,8 +1980,6 @@ SELECT * FROM v2_uses_t1; SELECT * FROM v2_uses_t2; --echo # --echo # 2) INVOKER-security view uses INVOKER-security view. ---echo # ---echo # Connection 'default'. --connection default DROP VIEW v2_uses_t1, v2_uses_t2; CREATE SQL SECURITY INVOKER VIEW v2_uses_t1 AS SELECT * FROM v1_uses_t1; @@ -2000,15 +1988,11 @@ GRANT SELECT ON v2_uses_t1 TO 'mysqluser1'@'%'; GRANT SELECT ON v2_uses_t2 TO 'mysqluser1'@'%'; GRANT SELECT ON v1_uses_t1 TO 'mysqluser2'@'%'; GRANT SELECT ON v1_uses_t2 TO 'mysqluser2'@'%'; ---echo # ---echo # Connection 'mysqluser1'. --connection mysqluser1 --echo # For both versions of 'v2' 'mysqluser1' privileges should be used. SELECT * FROM v2_uses_t1; --error ER_VIEW_INVALID SELECT * FROM v2_uses_t2; ---echo # ---echo # Connection 'mysqluser2'. --connection mysqluser2 --echo # And now for both versions of 'v2' 'mysqluser2' privileges should --echo # be used. @@ -2017,24 +2001,16 @@ SELECT * FROM v2_uses_t1; SELECT * FROM v2_uses_t2; --echo # --echo # 3) INVOKER-security view uses DEFINER-security view. ---echo # ---echo # Connection 'default'. --connection default DROP VIEW v1_uses_t1, v1_uses_t2; --echo # To be able create 'v1_uses_t2' we also need select on t2. GRANT SELECT ON t2 TO 'mysqluser1'@'%'; ---echo # ---echo # Connection 'mysqluser1'. --connection mysqluser1 CREATE SQL SECURITY DEFINER VIEW v1_uses_t1 AS SELECT * FROM t1; CREATE SQL SECURITY DEFINER VIEW v1_uses_t2 AS SELECT * FROM t2; ---echo # ---echo # Connection 'default'. --connection default --echo # Make 'mysqluser1' unable to access t2. REVOKE SELECT ON t2 FROM 'mysqluser1'@'%'; ---echo # ---echo # Connection 'mysqluser2'. --connection mysqluser2 --echo # Due to suid nature of v1_uses_t1 and v1_uses_t2 the first --echo # select should succeed and the second select should fail. @@ -2043,24 +2019,16 @@ SELECT * FROM v2_uses_t1; SELECT * FROM v2_uses_t2; --echo # --echo # 4) DEFINER-security view uses DEFINER-security view. ---echo # ---echo # Connection 'default'. --connection default DROP VIEW v2_uses_t1, v2_uses_t2; --echo # To be able create 'v2_uses_t2' we also need select on t2. GRANT SELECT ON t2 TO 'mysqluser1'@'%'; ---echo # ---echo # Connection 'mysqluser2'. --connection mysqluser2 CREATE SQL SECURITY DEFINER VIEW v2_uses_t1 AS SELECT * FROM v1_uses_t1; CREATE SQL SECURITY DEFINER VIEW v2_uses_t2 AS SELECT * FROM v1_uses_t2; ---echo # ---echo # Connection 'default'. --connection default --echo # Make 'mysqluser1' unable to access t2. REVOKE SELECT ON t2 FROM 'mysqluser1'@'%'; ---echo # ---echo # Connection 'mysqluser2'. --connection mysqluser2 --echo # Again privileges of creator of innermost views should apply. SELECT * FROM v2_uses_t1; @@ -2132,8 +2100,6 @@ create sql security invoker view v42 as where t2.id = v2.id; ---echo # ---echo # Connect as user_11766767 connect (conn_11766767, localhost, user_11766767,,); --echo # @@ -2231,7 +2197,6 @@ update mysqltest1.t11 as t11, mysqltest2.v42 as v4 set v4.val= 'test20' --echo # --echo # Clean-up. --echo # ---echo # Switching to connection 'default'. disconnect conn_11766767; connection default; drop user user_11766767; diff --git a/mysql-test/t/wait_timeout.test b/mysql-test/t/wait_timeout.test index 68c0957347d..4ece5fd1749 100644 --- a/mysql-test/t/wait_timeout.test +++ b/mysql-test/t/wait_timeout.test @@ -19,14 +19,12 @@ let $start_value= `SELECT @@global.wait_timeout`; SET @@global.wait_timeout= 2; ---echo disconnect default; disconnect default; # Connect with another connection and reset counters ---disable_query_log connect (wait_con,localhost,root,,test,,); ---echo connection wait_con; connection wait_con; +--disable_query_log SET SESSION wait_timeout=100; let $retries=300; SET @aborted_clients= 0; @@ -34,16 +32,14 @@ SET @aborted_clients= 0; # Disable reconnect and do the query connect (default,localhost,root,,test,,); ---echo connection default; connection default; --echo --disable_reconnect; --disable_reconnect SELECT 1; # Switch to wait_con and wait until server has aborted the connection ---disable_query_log ---echo connection wait_con; connection wait_con; +--disable_query_log while (!`select @aborted_clients`) { real_sleep 0.1; @@ -61,7 +57,6 @@ while (!`select @aborted_clients`) # the disconnect has reached client let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist; --source include/wait_condition.inc ---echo connection default; connection default; # When the connection is closed in this way, the error code should # be consistent see Bug#2845 for an explanation @@ -73,7 +68,6 @@ SELECT 2; SELECT 3; # Disconnect so that we will not be confused by a future abort from this # connection. ---echo disconnection default; disconnect default; # @@ -81,24 +75,21 @@ disconnect default; # (which we get by specifying an ip adress) # Connect with another connection and reset counters ---disable_query_log ---echo connection wait_con; connection wait_con; +--disable_query_log FLUSH STATUS; # Reset counters let $retries=300; SET @aborted_clients= 0; --enable_query_log ---echo connection con1; connect (con1,127.0.0.1,root,,test,$MASTER_MYPORT,); --echo --disable_reconnect; --disable_reconnect SELECT 1; # Switch to wait_con and wait until server has aborted the connection ---disable_query_log ---echo connection wait_con; connection wait_con; +--disable_query_log while (!`select @aborted_clients`) { real_sleep 0.1; @@ -118,7 +109,6 @@ let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist; --source include/wait_condition.inc disconnect wait_con; ---echo connection con1; connection con1; # When the connection is closed in this way, the error code should # be consistent see Bug#2845 for an explanation @@ -130,7 +120,6 @@ SELECT 2; SELECT 3; --replace_result $start_value <start_value> eval SET @@global.wait_timeout= $start_value; ---echo disconnection con1; disconnect con1; diff --git a/mysql-test/t/xa.test b/mysql-test/t/xa.test index 1709886eb0c..f1576f021ec 100644 --- a/mysql-test/t/xa.test +++ b/mysql-test/t/xa.test @@ -258,19 +258,16 @@ DROP TABLE IF EXISTS t1; CREATE TABLE t1(a INT, b INT, PRIMARY KEY(a)) engine=InnoDB; INSERT INTO t1 VALUES (1, 1), (2, 2); ---echo # Connection con1 connect (con1, localhost, root); XA START 'a'; UPDATE t1 SET b= 3 WHERE a=1; ---echo # Connection default connection default; XA START 'b'; UPDATE t1 SET b=4 WHERE a=2; --echo # Sending: --send UPDATE t1 SET b=5 WHERE a=1 ---echo # Connection con1 connection con1; --sleep 1 --error ER_LOCK_DEADLOCK @@ -279,7 +276,6 @@ UPDATE t1 SET b=6 WHERE a=2; --error ER_XA_RBDEADLOCK XA COMMIT 'a'; ---echo # Connection default connection default; --echo # Reaping: UPDATE t1 SET b=5 WHERE a=1 --reap @@ -343,13 +339,11 @@ CREATE TABLE t2 (a INT) ENGINE=InnoDB; START TRANSACTION; INSERT INTO t1 VALUES (1); ---echo # Connection con2 --connect (con2,localhost,root) XA START 'xid1'; --echo # Sending: --send INSERT INTO t2 SELECT a FROM t1 ---echo # Connection default --connection default let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist @@ -360,7 +354,6 @@ let $wait_condition= --sleep 0.1 DELETE FROM t1; ---echo # Connection con2 --connection con2 --echo # Reaping: INSERT INTO t2 SELECT a FROM t1 --error ER_LOCK_DEADLOCK @@ -368,12 +361,10 @@ DELETE FROM t1; --error ER_XA_RBDEADLOCK XA COMMIT 'xid1'; ---echo # Connection default connection default; COMMIT; ---echo # Connection con2 connection con2; # This caused the assert to be triggered XA START 'xid1'; @@ -382,7 +373,6 @@ XA END 'xid1'; XA PREPARE 'xid1'; XA ROLLBACK 'xid1'; ---echo # Connection default connection default; DROP TABLE t1, t2; disconnect con2; |