From d7f9583a9b3846b25402fce4510c3bc55e6cddc5 Mon Sep 17 00:00:00 2001 From: Jon Olav Hauglid Date: Thu, 10 Dec 2009 15:09:56 +0100 Subject: [PATCH] Backport of revno: 3690 Postfix for Bug#48210 FLUSH TABLES WITH READ LOCK deadlocks against concurrent CREATE PROCEDURE Rewrote the second test to use DROP PROCEDURE instead of CREATE USER as CREATE USER does not work with embedded server. --- mysql-test/r/mdl_sync.result | 10 ++++------ mysql-test/t/mdl_sync.test | 10 ++++------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/mysql-test/r/mdl_sync.result b/mysql-test/r/mdl_sync.result index 130a8f22710..ec02f29b008 100644 --- a/mysql-test/r/mdl_sync.result +++ b/mysql-test/r/mdl_sync.result @@ -273,21 +273,19 @@ FLUSH TABLES WITH READ LOCK; # Connection 2 UNLOCK TABLES; # Connection 1 -DROP PROCEDURE p1; SET DEBUG_SYNC= 'RESET'; -# Test 2: CREATE USER -# Start CREATE USER and open the grant tables +# Test 2: DROP PROCEDURE +# Start DROP PROCEDURE and open tables SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL table_opened WAIT_FOR grlwait'; -CREATE USER 'user_1@localhost'; +DROP PROCEDURE p1; # Connection 2 SET DEBUG_SYNC= 'now WAIT_FOR table_opened'; # Check that FLUSH must wait to get the GRL -# and let CREATE USER continue +# and let DROP PROCEDURE continue SET DEBUG_SYNC= 'wait_lock_global_read_lock SIGNAL grlwait'; FLUSH TABLES WITH READ LOCK; # Connection 1 # Connection 2 UNLOCK TABLES; # Connection 1 -DROP USER 'user_1@localhost'; SET DEBUG_SYNC= 'RESET'; diff --git a/mysql-test/t/mdl_sync.test b/mysql-test/t/mdl_sync.test index 9422c67cb6f..e3aceaa05fa 100644 --- a/mysql-test/t/mdl_sync.test +++ b/mysql-test/t/mdl_sync.test @@ -509,21 +509,20 @@ UNLOCK TABLES; --echo # Connection 1 connection default; -DROP PROCEDURE p1; SET DEBUG_SYNC= 'RESET'; ---echo # Test 2: CREATE USER +--echo # Test 2: DROP PROCEDURE connection default; ---echo # Start CREATE USER and open the grant tables +--echo # Start DROP PROCEDURE and open tables SET DEBUG_SYNC= 'after_open_table_mdl_shared SIGNAL table_opened WAIT_FOR grlwait'; ---send CREATE USER 'user_1@localhost' +--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 ---echo # and let CREATE USER continue +--echo # and let DROP PROCEDURE continue SET DEBUG_SYNC= 'wait_lock_global_read_lock SIGNAL grlwait'; --send FLUSH TABLES WITH READ LOCK @@ -538,7 +537,6 @@ UNLOCK TABLES; --echo # Connection 1 connection default; -DROP USER 'user_1@localhost'; SET DEBUG_SYNC= 'RESET'; disconnect con2;