From: Dmitry Lenev Date: October 21 2010 5:44am Subject: bzr commit into mysql-5.5-runtime branch (Dmitry.Lenev:3171) List-Archive: http://lists.mysql.com/commits/121433 Message-Id: <20101021054413.BE3CF2F0E23@mockturtle> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2000631128==" --===============2000631128== 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:kostja@stripped 3171 Dmitry Lenev 2010-10-21 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. Remove resolved questions. modified: mysql-test/r/flush_read_lock.result mysql-test/r/mdl_sync.result mysql-test/t/flush_read_lock.test mysql-test/t/mdl_sync.test sql/sql_parse.cc === modified file 'mysql-test/r/flush_read_lock.result' --- a/mysql-test/r/flush_read_lock.result 2010-10-20 07:52:42 +0000 +++ b/mysql-test/r/flush_read_lock.result 2010-10-21 05:43:57 +0000 @@ -103,7 +103,6 @@ Success: FTWRL is blocked when 'alter ev # # 2) ANALYZE TABLE statement is compatible with FTWRL. # -# QQ: Is this a correct behavior? Success: Was able to run 'analyze table t1_base' under FTWRL. Success: Was able to run 'analyze table t1_base' with FTWRL active in another connection. Success: Was able to run FTWRL while 'analyze table t1_base' was active in another connection. === modified file 'mysql-test/r/mdl_sync.result' --- a/mysql-test/r/mdl_sync.result 2010-10-18 12:33:49 +0000 +++ b/mysql-test/r/mdl_sync.result 2010-10-21 05:43:57 +0000 @@ -2488,21 +2488,17 @@ SET DEBUG_SYNC= 'now WAIT_FOR table_open # and let DROP PROCEDURE continue SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL grlwait'; FLUSH TABLES WITH READ LOCK; -# Connection 2 +# Connection 1 # Once FLUSH TABLES WITH READ LOCK starts waiting # DROP PROCEDURE will be waked up and will drop # procedure. Global read lock will be granted after -# this point. After that DROP PROCEDURE will block -# due to GRL during attempt to auto-magically revoke -# privileges. This is expected as we treat these two -# steps as a separate statements. -# -# QQ: This doesn't seem right and IMO breaks binary -# logging! -# Ublock second part of DROP PROCEDURE. +# this statement ends. +# +# Reaping DROP PROCEDURE. +# Connection 2 +# Reaping FTWRL. UNLOCK TABLES; # Connection 1 -# Connection 1 SET DEBUG_SYNC= 'RESET'; # # Bug#50786 Assertion `thd->mdl_context.trans_sentinel() == __null' === modified file 'mysql-test/t/flush_read_lock.test' --- a/mysql-test/t/flush_read_lock.test 2010-10-20 07:52:42 +0000 +++ b/mysql-test/t/flush_read_lock.test 2010-10-21 05:43:57 +0000 @@ -143,7 +143,6 @@ let $cleanup_stmt1= alter event e1 comme --echo # --echo # 2) ANALYZE TABLE statement is compatible with FTWRL. --echo # ---echo # QQ: Is this a correct behavior? let $statement= analyze table t1_base; let $cleanup_stmt= ; --source include/check_ftwrl_compatible.inc === modified file 'mysql-test/t/mdl_sync.test' --- a/mysql-test/t/mdl_sync.test 2010-10-18 12:33:49 +0000 +++ b/mysql-test/t/mdl_sync.test 2010-10-21 05:43:57 +0000 @@ -3692,25 +3692,21 @@ SET DEBUG_SYNC= 'now WAIT_FOR table_open SET DEBUG_SYNC= 'mdl_acquire_lock_wait SIGNAL grlwait'; --send FLUSH TABLES WITH READ LOCK ---echo # Connection 2 -connection con2; +--echo # Connection 1 +connection default; --echo # Once FLUSH TABLES WITH READ LOCK starts waiting --echo # DROP PROCEDURE will be waked up and will drop --echo # procedure. Global read lock will be granted after ---echo # this point. After that DROP PROCEDURE will block ---echo # due to GRL during attempt to auto-magically revoke ---echo # privileges. This is expected as we treat these two ---echo # steps as a separate statements. +--echo # this statement ends. --echo # ---echo # QQ: This doesn't seem right and IMO breaks binary ---echo # logging! +--echo # Reaping DROP PROCEDURE. --reap ---echo # Ublock second part of DROP PROCEDURE. -UNLOCK TABLES; ---echo # Connection 1 -connection default; +--echo # Connection 2 +connection con2; +--echo # Reaping FTWRL. --reap +UNLOCK TABLES; --echo # Connection 1 connection default; === modified file 'sql/sql_parse.cc' --- a/sql/sql_parse.cc 2010-10-20 07:52:42 +0000 +++ b/sql/sql_parse.cc 2010-10-21 05:43:57 +0000 @@ -363,7 +363,6 @@ void init_update_queries(void) sql_command_flags[SQLCOM_DROP_USER]= CF_CHANGES_DATA; sql_command_flags[SQLCOM_GRANT]= CF_CHANGES_DATA; sql_command_flags[SQLCOM_REVOKE]= CF_CHANGES_DATA; - // QQ Looks somewhat strange but is not changed... sql_command_flags[SQLCOM_OPTIMIZE]= CF_CHANGES_DATA; sql_command_flags[SQLCOM_CREATE_FUNCTION]= CF_CHANGES_DATA; sql_command_flags[SQLCOM_CREATE_PROCEDURE]= CF_CHANGES_DATA | CF_AUTO_COMMIT_TRANS | --===============2000631128== 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: 47bc375db3501b5d82817365dec2541c7329d2eb # timestamp: 2010-10-21 09:44:13 +0400 # base_revision_id: kostja@stripped # # Begin bundle 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 --===============2000631128==--