List:Commits« Previous MessageNext Message »
From:Sneha Modi Date:November 10 2011 12:02pm
Subject:bzr push into mysql-trunk branch (sneha.modi:3590 to 3591) Bug#11748731
View as plain text  
 3591 Sneha Modi	2011-11-10 [merge]
      Bug#11748731 - 37248: SOME 'BIG' TESTS FAILING ON 6.0:
        
       Merging from mysql-5.5 -> mysql-trunk

    modified:
      mysql-test/r/alter_table-big.result
      mysql-test/t/alter_table-big.test
      mysql-test/t/disabled.def
 3590 kevin.lewis@stripped	2011-11-10
      Bug#13357607 - New test suite/innodb/innodb-restart.test fails in embedded mode.
      Use -- source include/not_embedded.inc

    modified:
      mysql-test/suite/innodb/t/innodb-restart.test
=== modified file 'mysql-test/r/alter_table-big.result'
--- a/mysql-test/r/alter_table-big.result	2010-05-24 13:54:08 +0000
+++ b/mysql-test/r/alter_table-big.result	2011-11-10 11:48:41 +0000
@@ -1,57 +1,77 @@
 drop table if exists t1, t2;
+set debug_sync='RESET';
 create table t1 (n1 int, n2 int, n3 int,
 key (n1, n2, n3),
 key (n2, n3, n1),
 key (n3, n1, n2));
 create table t2 (i int);
 alter table t1 disable keys;
-insert into t1 values (RAND()*1000, RAND()*1000, RAND()*1000);
+insert into t1 values (1, 2, 3);
 reset master;
-set session debug="+d,sleep_alter_enable_indexes";
+set debug_sync='alter_table_enable_indexes SIGNAL parked WAIT_FOR go';
 alter table t1 enable keys;;
+set debug_sync='now WAIT_FOR parked';
 insert into t2 values (1);
-insert into t1 values (1, 1, 1);
-set session debug="-d,sleep_alter_enable_indexes";
+insert into t1 values (1, 1, 1);;
+set debug_sync='now SIGNAL go';
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	#	#	BEGIN
 master-bin.000001	#	Query	#	#	use `test`; insert into t2 values (1)
+master-bin.000001	#	Query	#	#	COMMIT
 master-bin.000001	#	Query	#	#	use `test`; alter table t1 enable keys
+master-bin.000001	#	Query	#	#	BEGIN
 master-bin.000001	#	Query	#	#	use `test`; insert into t1 values (1, 1, 1)
+master-bin.000001	#	Query	#	#	COMMIT
 drop tables t1, t2;
+set debug_sync='RESET';
 End of 5.0 tests
 drop table if exists t1, t2, t3;
 create table t1 (i int);
 reset master;
-set session debug="+d,sleep_alter_before_main_binlog";
+set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
 alter table t1 change i c char(10) default 'Test1';;
-insert into t1 values ();
+set debug_sync='now WAIT_FOR parked';
+insert into t1 values ();;
+set debug_sync='now SIGNAL go';
 select * from t1;
 c
 Test1
+set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
 alter table t1 change c vc varchar(100) default 'Test2';;
-rename table t1 to t2;
+set debug_sync='now WAIT_FOR parked';
+rename table t1 to t2;;
+set debug_sync='now SIGNAL go';
 drop table t2;
 create table t1 (i int);
+set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
 alter table t1 change i c char(10) default 'Test3', rename to t2;;
-insert into t2 values ();
+set debug_sync='now WAIT_FOR parked';
+insert into t2 values();;
+set debug_sync='now SIGNAL go';
 select * from t2;
 c
 Test3
 alter table t2 change c vc varchar(100) default 'Test2', rename to t1;;
 rename table t1 to t3;
 drop table t3;
-set session debug="-d,sleep_alter_before_main_binlog";
+set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
+set debug_sync='RESET';
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
 master-bin.000001	#	Query	#	#	use `test`; alter table t1 change i c char(10) default 'Test1'
+master-bin.000001	#	Query	#	#	BEGIN
 master-bin.000001	#	Query	#	#	use `test`; insert into t1 values ()
+master-bin.000001	#	Query	#	#	COMMIT
 master-bin.000001	#	Query	#	#	use `test`; alter table t1 change c vc varchar(100) default 'Test2'
 master-bin.000001	#	Query	#	#	use `test`; rename table t1 to t2
-master-bin.000001	#	Query	#	#	use `test`; drop table t2
+master-bin.000001	#	Query	#	#	use `test`; DROP TABLE `t2` /* generated by server */
 master-bin.000001	#	Query	#	#	use `test`; create table t1 (i int)
 master-bin.000001	#	Query	#	#	use `test`; alter table t1 change i c char(10) default 'Test3', rename to t2
-master-bin.000001	#	Query	#	#	use `test`; insert into t2 values ()
+master-bin.000001	#	Query	#	#	BEGIN
+master-bin.000001	#	Query	#	#	use `test`; insert into t2 values()
+master-bin.000001	#	Query	#	#	COMMIT
 master-bin.000001	#	Query	#	#	use `test`; alter table t2 change c vc varchar(100) default 'Test2', rename to t1
 master-bin.000001	#	Query	#	#	use `test`; rename table t1 to t3
-master-bin.000001	#	Query	#	#	use `test`; drop table t3
+master-bin.000001	#	Query	#	#	use `test`; DROP TABLE `t3` /* generated by server */
 End of 5.1 tests

=== modified file 'mysql-test/t/alter_table-big.test'
--- a/mysql-test/t/alter_table-big.test	2010-05-24 13:54:08 +0000
+++ b/mysql-test/t/alter_table-big.test	2011-11-10 11:48:41 +0000
@@ -18,7 +18,10 @@
 --disable_warnings
 drop table if exists t1, t2;
 --enable_warnings
+set debug_sync='RESET';
+
 connect (addconroot, localhost, root,,);
+connect (addconroot2, localhost, root,,);
 connection default;
 create table t1 (n1 int, n2 int, n3 int,
                 key (n1, n2, n3),
@@ -26,38 +29,45 @@ create table t1 (n1 int, n2 int, n3 int,
                 key (n3, n1, n2));
 create table t2 (i int);
 
-# Starting from 5.1 we have runtime settable @@debug variable,
-# which can be used for introducing delays at certain points of
-# statement execution, so we don't need many rows in 't1' to make
-# this test repeatable.
 alter table t1 disable keys;
---disable_warnings
-insert into t1 values (RAND()*1000, RAND()*1000, RAND()*1000);
---enable_warnings
+insert into t1 values (1, 2, 3);
 
 # Later we use binlog to check the order in which statements are
 # executed so let us reset it first.
 reset master;
-set session debug="+d,sleep_alter_enable_indexes";
+set debug_sync='alter_table_enable_indexes SIGNAL parked WAIT_FOR go';
 --send alter table t1 enable keys;
 connection addconroot;
---sleep 2
+# Wait until ALTER TABLE acquires metadata lock.
+set debug_sync='now WAIT_FOR parked';
 # This statement should not be blocked by in-flight ALTER and therefore
 # should be executed and written to binlog before ALTER TABLE ... ENABLE KEYS
 # finishes.
 insert into t2 values (1);
 # And this should wait until the end of ALTER TABLE ... ENABLE KEYS.
-insert into t1 values (1, 1, 1);
+--send insert into t1 values (1, 1, 1);
+connection addconroot2;
+# Wait until the above INSERT INTO t1 is blocked due to ALTER
+let $wait_condition=
+    select count(*) = 1 from information_schema.processlist
+    where state = "Waiting for table metadata lock" and
+          info = "insert into t1 values (1, 1, 1)";
+--source include/wait_condition.inc
+# Resume ALTER execution.
+set debug_sync='now SIGNAL go';
 connection default;
 --reap
-set session debug="-d,sleep_alter_enable_indexes";
+connection addconroot;
+--reap
+connection default;
 # Check that statements were executed/binlogged in correct order.
 source include/show_binlog_events.inc;
 
 # Clean up
 drop tables t1, t2;
 disconnect addconroot;
-
+disconnect addconroot2;
+set debug_sync='RESET';
 
 --echo End of 5.0 tests
 
@@ -72,48 +82,92 @@ disconnect addconroot;
 --disable_warnings
 drop table if exists t1, t2, t3;
 --enable_warnings
+connect (addconroot, localhost, root,,);
+connect (addconroot2, localhost, root,,);
+connection default;
 create table t1 (i int);
 # We are going to check that statements are logged in correct order
 reset master;
-set session debug="+d,sleep_alter_before_main_binlog";
+set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
 --send alter table t1 change i c char(10) default 'Test1';
-connect (addconroot, localhost, root,,);
 connection addconroot;
---sleep 2
-insert into t1 values ();
-select * from t1;
+# Wait until ALTER TABLE acquires metadata lock.
+set debug_sync='now WAIT_FOR parked'; 
+--send insert into t1 values ();
+connection addconroot2;
+# Wait until the above INSERT INTO t1 is blocked due to ALTER
+let $wait_condition=
+    select count(*) = 1 from information_schema.processlist
+    where state = "Waiting for table metadata lock" and
+          info = "insert into t1 values ()";
+--source include/wait_condition.inc
+# Resume ALTER execution.
+set debug_sync='now SIGNAL go';
 connection default;
 --reap
+connection addconroot;
+--reap
+connection default;
+select * from t1;
+set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
 --send alter table t1 change c vc varchar(100) default 'Test2';
 connection addconroot;
---sleep 2
-rename table t1 to t2;
+# Wait until ALTER TABLE acquires metadata lock.
+set debug_sync='now WAIT_FOR parked';
+--send rename table t1 to t2;
+connection addconroot2;
+# Wait until the above RENAME TABLE is blocked due to ALTER
+let $wait_condition=
+    select count(*) = 1 from information_schema.processlist
+    where state = "Waiting for table metadata lock" and
+          info = "rename table t1 to t2";
+--source include/wait_condition.inc
+# Resume ALTER execution.
+set debug_sync='now SIGNAL go';
 connection default;
 --reap
+connection addconroot;
+--reap
+connection default;
 drop table t2;
 # And now tests for ALTER TABLE with RENAME clause. In this
 # case target table name should be properly locked as well.
 create table t1 (i int);
+set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
 --send alter table t1 change i c char(10) default 'Test3', rename to t2;
 connection addconroot;
---sleep 2
-insert into t2 values ();
-select * from t2;
+# Wait until ALTER TABLE acquires metadata lock.
+set debug_sync='now WAIT_FOR parked';
+--send insert into t2 values();
+connection addconroot2;
+# Wait until the above INSERT INTO t2 is blocked due to ALTER
+let $wait_condition=
+    select count(*) = 1 from information_schema.processlist
+    where state = "Waiting for table metadata lock" and
+           info = "insert into t2 values()";
+--source include/wait_condition.inc
+# Resume ALTER execution.
+set debug_sync='now SIGNAL go';
 connection default;
 --reap
+connection addconroot;
+--reap
+connection default;
+select * from t2;
 --send alter table t2 change c vc varchar(100) default 'Test2', rename to t1;
 connection addconroot;
---sleep 2
-rename table t1 to t3;
 connection default;
 --reap
+rename table t1 to t3;
+
 disconnect addconroot;
+disconnect addconroot2;
 drop table t3;
-set session debug="-d,sleep_alter_before_main_binlog";
+set debug_sync='alter_table_before_main_binlog SIGNAL parked WAIT_FOR go';
+set debug_sync='RESET';
 
 # Check that all statements were logged in correct order
 source include/show_binlog_events.inc;
 
 
 --echo End of 5.1 tests
-

=== modified file 'mysql-test/t/disabled.def'
--- a/mysql-test/t/disabled.def	2011-11-08 06:40:03 +0000
+++ b/mysql-test/t/disabled.def	2011-11-10 11:59:23 +0000
@@ -12,7 +12,6 @@
 lowercase_table3         : Bug#11762269 2010-06-30 alik main.lowercase_table3 on Mac OSX
 read_many_rows_innodb    : Bug#11748886 2010-11-15 mattiasj report already exists
 sum_distinct-big         : Bug#11764126 2010-11-15 mattiasj was not tested
-alter_table-big          : Bug#11748731 2010-11-15 mattiasj was not tested
 create-big               : Bug#11748731 2010-11-15 mattiasj was not tested
 archive-big              : Bug#11817185 2011-03-10 Anitha Disabled since this leads to timeout on Solaris Sparc
 log_tables-big           : Bug#11756699 2010-11-15 mattiasj report already exists

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (sneha.modi:3590 to 3591) Bug#11748731Sneha Modi11 Nov