From: Dmitry Lenev Date: November 11 2010 5:14am Subject: bzr commit into mysql-5.5-runtime branch (Dmitry.Lenev:3193) List-Archive: http://lists.mysql.com/commits/123520 Message-Id: <20101111051453.EA053E58D2@mockturtle> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2033401783==" --===============2033401783== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/dlenev/src/bzr/mysql-5.5-rt-grl/ based on revid:dmitry.lenev@stripped 3193 Dmitry Lenev 2010-11-11 More changes to draft patch refactoring global read lock implementation. Makes GRL yet another type of metadata lock and thus exposes it to deadlock detector in MDL subsystem. Solves bugs #54673 "It takes too long to get readlock for 'FLUSH TABLES WITH READ LOCK'" and #57006 "Deadlock between HANDLER and FLUSH TABLES WITH READ LOCK". Work-in-progress. Fixed issued discovered by RQG testing. modified: mysql-test/r/delayed.result mysql-test/t/delayed.test sql/sp_head.cc sql/sql_parse.cc === modified file 'mysql-test/r/delayed.result' --- a/mysql-test/r/delayed.result 2010-09-16 14:06:46 +0000 +++ b/mysql-test/r/delayed.result 2010-11-11 05:14:33 +0000 @@ -418,6 +418,18 @@ COMMIT; UNLOCK TABLES; # Connection con1 # Reaping: INSERT DELAYED INTO t1 VALUES (5) +# Connection default +# Test 5: LOCK TABLES + INSERT DELAYED in one connection. +# This test has triggered some asserts in metadata locking +# subsystem at some point in time.. +LOCK TABLE t1 WRITE; +INSERT DELAYED INTO t2 VALUES (7); +UNLOCK TABLES; +SET AUTOCOMMIT= 0; +LOCK TABLE t1 WRITE; +INSERT DELAYED INTO t2 VALUES (8); +UNLOCK TABLES; +SET AUTOCOMMIT= 1; # Connection con2 # Connection con1 # Connection default === modified file 'mysql-test/t/delayed.test' --- a/mysql-test/t/delayed.test 2010-09-16 14:06:46 +0000 +++ b/mysql-test/t/delayed.test 2010-11-11 05:14:33 +0000 @@ -539,6 +539,21 @@ 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. +--echo # This test has triggered some asserts in metadata locking +--echo # subsystem at some point in time.. +LOCK TABLE t1 WRITE; +INSERT DELAYED INTO t2 VALUES (7); +UNLOCK TABLES; +SET AUTOCOMMIT= 0; +LOCK TABLE t1 WRITE; +INSERT DELAYED INTO t2 VALUES (8); +UNLOCK TABLES; +SET AUTOCOMMIT= 1; + --echo # Connection con2 connection con2; disconnect con2; === modified file 'sql/sp_head.cc' --- a/sql/sp_head.cc 2010-11-03 18:09:02 +0000 +++ b/sql/sp_head.cc 2010-11-11 05:14:33 +0000 @@ -2140,11 +2140,8 @@ sp_head::execute_procedure(THD *thd, Lis if (! thd->in_sub_stmt && ! thd->in_multi_stmt_transaction_mode()) thd->mdl_context.release_transactional_locks(); - else if (! thd->locked_tables_mode) - { - DBUG_ASSERT(! thd->in_sub_stmt); + else if (! thd->in_sub_stmt) thd->mdl_context.release_statement_locks(); - } thd->rollback_item_tree_changes(); @@ -2983,7 +2980,7 @@ sp_lex_keeper::reset_lex_and_exec_core(T if (! thd->in_sub_stmt && ! thd->in_multi_stmt_transaction_mode()) thd->mdl_context.release_transactional_locks(); - else if (! thd->in_sub_stmt && !thd->locked_tables_mode) + else if (! thd->in_sub_stmt) thd->mdl_context.release_statement_locks(); } === modified file 'sql/sql_parse.cc' --- a/sql/sql_parse.cc 2010-11-08 14:10:47 +0000 +++ b/sql/sql_parse.cc 2010-11-11 05:14:33 +0000 @@ -4390,7 +4390,7 @@ finish: */ thd->mdl_context.release_transactional_locks(); } - else if (! thd->in_sub_stmt && !thd->locked_tables_mode) + else if (! thd->in_sub_stmt) { thd->mdl_context.release_statement_locks(); } --===============2033401783== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/dmitry.lenev@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: dmitry.lenev@stripped # target_branch: file:///home/dlenev/src/bzr/mysql-5.5-rt-grl/ # testament_sha1: 551116279bda0b0892358d9f2f4969d55767ef1f # timestamp: 2010-11-11 08:14:53 +0300 # source_branch: file:///home/dlenev/src/bzr/mysql-5.5-runtime/ # base_revision_id: dmitry.lenev@stripped\ # h78es5zh59825b5r # # Begin bundle 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 --===============2033401783==--