From: Jon Olav Hauglid Date: August 10 2010 10:50am Subject: bzr commit into mysql-5.5-bugfixing branch (jon.hauglid:3098) Bug#54360 List-Archive: http://lists.mysql.com/commits/115392 X-Bug: 54360 Message-Id: <201008101051.o7AApZg7004055@rcsinet13.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3769542260206679524==" --===============3769542260206679524== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/x/mysql-5.5-runtime-bug54360/ based on revid:kostja@stripped 3098 Jon Olav Hauglid 2010-08-10 Followup for Bug #54360 Deadlock DROP/ALTER/CREATE DATABASE with open HANDLER This patch changes the code for table renames to not drop metadata locks. Since table renames are done as a part of ALTER DATABASE ... UPGRADE, dropping metadata locks in the middle of execution can result in wrong binlog order since it means that no locks are held when the binlog is written to. The RENAME TABLE statement is unafffected since it auto commits and therefore already drops metadata locks at the end of execution. This patch also reverts the regression test for Bug#48940 back to its original version. The test was temporarily changed due to the issue mentioned above. modified: mysql-test/r/schema.result mysql-test/t/mdl_sync.test mysql-test/t/schema.test sql/sql_rename.cc === modified file 'mysql-test/r/schema.result' --- a/mysql-test/r/schema.result 2010-07-19 08:27:53 +0000 +++ b/mysql-test/r/schema.result 2010-08-10 10:50:16 +0000 @@ -16,21 +16,19 @@ drop schema foo; # Bug #48940 MDL deadlocks against mysql_rm_db # DROP SCHEMA IF EXISTS schema1; -DROP SCHEMA IF EXISTS schema2; # Connection default CREATE SCHEMA schema1; -CREATE SCHEMA schema2; CREATE TABLE schema1.t1 (a INT); SET autocommit= FALSE; INSERT INTO schema1.t1 VALUES (1); # Connection 2 DROP SCHEMA schema1; # Connection default -ALTER SCHEMA schema2 DEFAULT CHARACTER SET utf8; +ALTER SCHEMA schema1 DEFAULT CHARACTER SET utf8; +Got one of the listed errors SET autocommit= TRUE; # Connection 2 # Connection default -DROP SCHEMA schema2; # # Bug #49988 MDL deadlocks with mysql_create_db, reload_acl_and_cache # === modified file 'mysql-test/t/mdl_sync.test' --- a/mysql-test/t/mdl_sync.test 2010-08-06 11:29:37 +0000 +++ b/mysql-test/t/mdl_sync.test 2010-08-10 10:50:16 +0000 @@ -4041,7 +4041,8 @@ connection default; --echo # Connection con2 connection con2; --echo # Reaping: ALTER DATABASE db1 DEFAULT CHARACTER SET utf8 ---error 1,1 # Wrong error pending followup patch for bug#54360 +# Listing the error twice to prevent result diffences based on filename +--error 1,1 --reap @@ -4153,7 +4154,8 @@ connection default; --echo # Connection con2 connection con2; --echo # Reaping: RENAME TABLE test.t2 TO db1.t2 ---error 7, 7 # Wrong error pending followup patch for bug#54360 +# Listing the error twice to prevent result diffences based on filename +--error 7, 7 --reap DROP TABLE test.t2; === modified file 'mysql-test/t/schema.test' --- a/mysql-test/t/schema.test 2010-08-06 11:29:37 +0000 +++ b/mysql-test/t/schema.test 2010-08-10 10:50:16 +0000 @@ -23,7 +23,6 @@ drop schema foo; --disable_warnings DROP SCHEMA IF EXISTS schema1; -DROP SCHEMA IF EXISTS schema2; --enable_warnings connect(con2, localhost, root); @@ -32,7 +31,6 @@ connect(con2, localhost, root); connection default; CREATE SCHEMA schema1; -CREATE SCHEMA schema2; CREATE TABLE schema1.t1 (a INT); SET autocommit= FALSE; @@ -48,7 +46,9 @@ let $wait_condition= SELECT COUNT(*)= 1 WHERE state= 'Waiting for table metadata lock' AND info='DROP SCHEMA schema1'; --source include/wait_condition.inc -ALTER SCHEMA schema2 DEFAULT CHARACTER SET utf8; +# Listing the error twice to prevent result diffences based on filename +--error 1,1 +ALTER SCHEMA schema1 DEFAULT CHARACTER SET utf8; SET autocommit= TRUE; --echo # Connection 2 @@ -57,7 +57,6 @@ connection con2; --echo # Connection default connection default; -DROP SCHEMA schema2; disconnect con2; === modified file 'sql/sql_rename.cc' --- a/sql/sql_rename.cc 2010-08-09 18:33:47 +0000 +++ b/sql/sql_rename.cc 2010-08-10 10:50:16 +0000 @@ -188,8 +188,6 @@ bool mysql_rename_tables(THD *thd, TABLE if (!error) query_cache_invalidate3(thd, table_list, 0); - thd->mdl_context.release_transactional_locks(); - err: thd->global_read_lock.start_waiting_global_read_lock(thd); DBUG_RETURN(error || binlog_error); --===============3769542260206679524== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/jon.hauglid@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: jon.hauglid@stripped # target_branch: file:///export/home/x/mysql-5.5-runtime-bug54360/ # testament_sha1: f401475fff17cf73428f138efbe07afd8ed9f0c9 # timestamp: 2010-08-10 12:50:24 +0200 # base_revision_id: kostja@stripped # # Begin bundle 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 wXibxFheJxQzAhOURjsZ/i7kinChIeQUBco= --===============3769542260206679524==--