From: Dmitry Lenev Date: February 15 2011 12:19pm Subject: bzr commit into mysql-5.5 branch (Dmitry.Lenev:3327) List-Archive: http://lists.mysql.com/commits/131321 Message-Id: <20110215121935.96CFD740673@bandersnatch> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At file:///home/dlenev/src/bzr/mysql-5.5-mrg/ based on revid:dmitry.lenev@stripped 3327 Dmitry Lenev 2011-02-15 [merge] Merged recent changes from mysql-5.5 tree with fix for bug @59888. removed: mysql-test/suite/rpl/t/rpl_failed_optimize-master.opt modified: mysql-test/extra/rpl_tests/rpl_failed_optimize.test mysql-test/suite/rpl/r/rpl_failed_optimize.result mysql-test/suite/rpl/r/rpl_read_only.result mysql-test/suite/rpl/t/disabled.def mysql-test/suite/rpl/t/rpl_read_only.test === modified file 'mysql-test/extra/rpl_tests/rpl_failed_optimize.test' --- a/mysql-test/extra/rpl_tests/rpl_failed_optimize.test 2010-12-19 17:07:28 +0000 +++ b/mysql-test/extra/rpl_tests/rpl_failed_optimize.test 2011-02-15 11:59:12 +0000 @@ -2,22 +2,24 @@ # # BUG#5551 "Failed OPTIMIZE TABLE is logged to binary log" -# Replication should work when OPTIMIZE TABLE timeouts, and -# when OPTIMIZE TABLE is executed on a non-existing table +# Replication should work when when OPTIMIZE TABLE is +# executed on a non-existing table. # +# Due to patch for BUG#989, checking that an OPTIMIZE +# that fails due to a lock wait timeout on an InnoDB table +# is not valid anymore, as an mdl lock is hit before, +# thence no timeout occurs, but instead a deadlock. +# + eval CREATE TABLE t1 ( a int ) ENGINE=$engine_type; BEGIN; INSERT INTO t1 VALUES (1); connection master1; -OPTIMIZE TABLE t1; - OPTIMIZE TABLE non_existing; sync_slave_with_master; -# End of 4.1 tests - connection master; select * from t1; commit; === modified file 'mysql-test/suite/rpl/r/rpl_failed_optimize.result' --- a/mysql-test/suite/rpl/r/rpl_failed_optimize.result 2010-12-19 17:07:28 +0000 +++ b/mysql-test/suite/rpl/r/rpl_failed_optimize.result 2011-02-15 11:59:12 +0000 @@ -3,13 +3,6 @@ include/master-slave.inc CREATE TABLE t1 ( a int ) ENGINE=InnoDB; BEGIN; INSERT INTO t1 VALUES (1); -OPTIMIZE TABLE t1; -Table Op Msg_type Msg_text -test.t1 optimize note Table does not support optimize, doing recreate + analyze instead -test.t1 optimize error Lock wait timeout exceeded; try restarting transaction -test.t1 optimize status Operation failed -Warnings: -Error 1205 Lock wait timeout exceeded; try restarting transaction OPTIMIZE TABLE non_existing; Table Op Msg_type Msg_text test.non_existing optimize Error Table 'test.non_existing' doesn't exist === modified file 'mysql-test/suite/rpl/r/rpl_read_only.result' --- a/mysql-test/suite/rpl/r/rpl_read_only.result 2010-12-19 17:15:12 +0000 +++ b/mysql-test/suite/rpl/r/rpl_read_only.result 2011-02-15 12:01:52 +0000 @@ -27,15 +27,26 @@ a 2001 set global read_only=0; BEGIN; +BEGIN; +select @@read_only; +@@read_only +0 +set global read_only=1; +*** On SUPER USER connection *** insert into t1 values(1002); insert into t2 values(2002); -BEGIN; +*** On regular USER connection *** insert into t1 values(1003); +ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement insert into t2 values(2003); -set global read_only=1; +ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement +*** SUPER USER COMMIT (must succeed) *** COMMIT; +*** regular USER COMMIT (must succeed - nothing to commit) *** COMMIT; -ERROR HY000: The MySQL server is running with the --read-only option so it cannot execute this statement +select @@read_only; +@@read_only +1 set global read_only=0; insert into t1 values(1004); insert into t2 values(2004); @@ -48,7 +59,6 @@ select * from t2; a 2001 2002 -2003 2004 select * from t1; a @@ -59,7 +69,6 @@ select * from t2; a 2001 2002 -2003 2004 set global read_only=1; select @@read_only; @@ -87,7 +96,6 @@ select * from t2; a 2001 2002 -2003 2004 2005 select * from t1; @@ -100,7 +108,6 @@ select * from t2; a 2001 2002 -2003 2004 2005 insert into t1 values(1006); === modified file 'mysql-test/suite/rpl/t/disabled.def' --- a/mysql-test/suite/rpl/t/disabled.def 2011-01-31 13:11:05 +0000 +++ b/mysql-test/suite/rpl/t/disabled.def 2011-02-15 12:01:52 +0000 @@ -10,8 +10,6 @@ # ############################################################################## -rpl_failed_optimize : WL#4284: Can't optimize table used by a pending transaction (there is metadata lock on the table). -rpl_read_only : WL#4284: Setting Read only won't succeed until all metadata locks are released. rpl_row_create_table : Bug#51574 2010-02-27 andrei failed different way than earlier with bug#45576 rpl_spec_variables : BUG#47661 2009-10-27 jasonh rpl_spec_variables fails on PB2 hpux rpl_get_master_version_and_clock : Bug#59178 Jan 05 2011 joro Valgrind warnings rpl_get_master_version_and_clock === removed file 'mysql-test/suite/rpl/t/rpl_failed_optimize-master.opt' --- a/mysql-test/suite/rpl/t/rpl_failed_optimize-master.opt 2007-06-27 12:28:02 +0000 +++ b/mysql-test/suite/rpl/t/rpl_failed_optimize-master.opt 1970-01-01 00:00:00 +0000 @@ -1 +0,0 @@ ---loose-innodb-lock-wait-timeout=1 === modified file 'mysql-test/suite/rpl/t/rpl_read_only.test' --- a/mysql-test/suite/rpl/t/rpl_read_only.test 2010-12-19 17:15:12 +0000 +++ b/mysql-test/suite/rpl/t/rpl_read_only.test 2011-02-15 12:01:52 +0000 @@ -41,30 +41,39 @@ set global read_only=0; connection master1; BEGIN; + +connection master2; +BEGIN; + +connection master; +select @@read_only; +set global read_only=1; + +connection master1; +-- echo *** On SUPER USER connection *** insert into t1 values(1002); --disable_warnings insert into t2 values(2002); --enable_warnings connection master2; -BEGIN; +-- echo *** On regular USER connection *** +--error ER_OPTION_PREVENTS_STATEMENT insert into t1 values(1003); ---disable_warnings +--error ER_OPTION_PREVENTS_STATEMENT insert into t2 values(2003); ---enable_warnings - -connection master; -set global read_only=1; connection master1; ## works even with read_only=1, because master1 is root +-- echo *** SUPER USER COMMIT (must succeed) *** COMMIT; connection master2; ---error ER_OPTION_PREVENTS_STATEMENT +-- echo *** regular USER COMMIT (must succeed - nothing to commit) *** COMMIT; connection master; +select @@read_only; set global read_only=0; connection master1; No bundle (reason: revision is a merge).