From 5676a2d770d79b2f22242c5d4c18e5fd0e1a1df9 Mon Sep 17 00:00:00 2001 From: He Zhenxing Date: Mon, 24 Nov 2008 14:57:23 +0800 Subject: [PATCH 01/11] BUG#40707 rpl_multi_engine fails sporadically in pushbuild If before running test rpl_mulit_engin, the mysqltest1 database exists on master but not exists on slave, then the following statement: create database if not exists mysqltest1; would not be logged to binary log, and so the database would not be created on slave. This would cause the test to fail and reporting mysqltest1 database not existed on slave. This patch fixed this problem by not using a different database for the whole test, just use the default test database, there is no reason why a seperate database is used for this test. mysql-test/include/rpl_multi_engine.inc: use default test database instead of mysqltest1 mysql-test/suite/rpl/r/rpl_multi_engine.result: use default test database instead of mysqltest1 mysql-test/suite/rpl/t/rpl_multi_engine.test: use default test database instead of mysqltest1 add missing --enable_warnings --- mysql-test/include/rpl_multi_engine.inc | 2 +- .../suite/rpl/r/rpl_multi_engine.result | 22 ++++++++----------- mysql-test/suite/rpl/t/rpl_multi_engine.test | 6 +---- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/mysql-test/include/rpl_multi_engine.inc b/mysql-test/include/rpl_multi_engine.inc index f2c837ef90b..b2d1a9c1cef 100644 --- a/mysql-test/include/rpl_multi_engine.inc +++ b/mysql-test/include/rpl_multi_engine.inc @@ -9,7 +9,7 @@ select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; sync_slave_with_master; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; connection master; -DELETE FROM mysqltest1.t1 WHERE id = 42; +DELETE FROM t1 WHERE id = 42; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; sync_slave_with_master; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; diff --git a/mysql-test/suite/rpl/r/rpl_multi_engine.result b/mysql-test/suite/rpl/r/rpl_multi_engine.result index 7cb7d873415..e26777c15ce 100644 --- a/mysql-test/suite/rpl/r/rpl_multi_engine.result +++ b/mysql-test/suite/rpl/r/rpl_multi_engine.result @@ -4,13 +4,10 @@ reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; -create database if not exists mysqltest1; -use mysqltest1; drop table if exists t1; CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, f FLOAT DEFAULT 0, total BIGINT UNSIGNED, y YEAR, t TIMESTAMP,PRIMARY KEY(id)); -use mysqltest1; alter table t1 engine=myisam; show create table t1; Table Create Table @@ -55,7 +52,7 @@ id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t 42 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-09-09 00:00:00 -DELETE FROM mysqltest1.t1 WHERE id = 42; +DELETE FROM t1 WHERE id = 42; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; @@ -89,7 +86,7 @@ id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t 42 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-09-09 00:00:00 -DELETE FROM mysqltest1.t1 WHERE id = 42; +DELETE FROM t1 WHERE id = 42; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; @@ -123,7 +120,7 @@ id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t 42 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-09-09 00:00:00 -DELETE FROM mysqltest1.t1 WHERE id = 42; +DELETE FROM t1 WHERE id = 42; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; @@ -172,7 +169,7 @@ id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t 42 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-09-09 00:00:00 -DELETE FROM mysqltest1.t1 WHERE id = 42; +DELETE FROM t1 WHERE id = 42; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; @@ -206,7 +203,7 @@ id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t 42 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-09-09 00:00:00 -DELETE FROM mysqltest1.t1 WHERE id = 42; +DELETE FROM t1 WHERE id = 42; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; @@ -240,7 +237,7 @@ id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t 42 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-09-09 00:00:00 -DELETE FROM mysqltest1.t1 WHERE id = 42; +DELETE FROM t1 WHERE id = 42; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; @@ -289,7 +286,7 @@ id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t 42 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-09-09 00:00:00 -DELETE FROM mysqltest1.t1 WHERE id = 42; +DELETE FROM t1 WHERE id = 42; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; @@ -323,7 +320,7 @@ id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t 42 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-09-09 00:00:00 -DELETE FROM mysqltest1.t1 WHERE id = 42; +DELETE FROM t1 WHERE id = 42; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; @@ -357,10 +354,9 @@ id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t 42 0 Testing MySQL databases is a cool Must make it bug free for the customer 654321.4321 15.21 0 1965 2005-09-09 00:00:00 -DELETE FROM mysqltest1.t1 WHERE id = 42; +DELETE FROM t1 WHERE id = 42; select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; id hex(b1) vc bc d f total y t DROP TABLE t1; -DROP DATABASE mysqltest1; diff --git a/mysql-test/suite/rpl/t/rpl_multi_engine.test b/mysql-test/suite/rpl/t/rpl_multi_engine.test index 10780c765f7..31c4a2050d7 100644 --- a/mysql-test/suite/rpl/t/rpl_multi_engine.test +++ b/mysql-test/suite/rpl/t/rpl_multi_engine.test @@ -12,16 +12,14 @@ connection slave; connection master; -- source include/have_innodb.inc --disable_warnings -create database if not exists mysqltest1; -use mysqltest1; drop table if exists t1; +--enable_warnings CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, f FLOAT DEFAULT 0, total BIGINT UNSIGNED, y YEAR, t TIMESTAMP,PRIMARY KEY(id)); sync_slave_with_master; -use mysqltest1; # MyISAM to MyISAM then InnoDB then MEMORY @@ -101,8 +99,6 @@ show create table t1; # cleanup connection master; DROP TABLE t1; -# Need to drop mysqltest1 as well so other test will pass. -DROP DATABASE mysqltest1; sync_slave_with_master; # End of 5.1 test case From 82efca8d6b97ed2d4e95d980180002da3417ce7f Mon Sep 17 00:00:00 2001 From: Sven Sandberg Date: Tue, 25 Nov 2008 17:51:02 +0100 Subject: [PATCH 02/11] Clarified the error message printed when mtr's test cleanup check fails. mysql-test/mysql-test-run.pl: Clarified error message printed when test cleanup check fails. --- mysql-test/mysql-test-run.pl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 1cd3fad90ae..049dbb4aceb 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -2810,8 +2810,12 @@ sub check_testcase($$) # Test failed, grab the report mysqltest has created my $report= mtr_grab_file($err_file); $tinfo->{check}.= - "\nThe check of testcase '$tname' failed, this is the\n". - "diff between before and after:\n"; + "\nMTR's internal check of the test case '$tname' failed. +This means that the test case does not preserve the state that existed +before the test case was executed. Most likely the test case did not +do a proper clean-up. +This is the diff of the states of the servers before and after the +test case was executed:\n"; $tinfo->{check}.= $report; # Check failed, mark the test case with that info From 28ce657919b5679248c2af83c98118c6674bfcd2 Mon Sep 17 00:00:00 2001 From: Serge Kozlov Date: Thu, 27 Nov 2008 15:04:48 +0300 Subject: [PATCH 03/11] Bug#40708: Sometimes DB mysqltest1 did not removed before starting test rpl_row_create_table therefore the patch add the cleanup operation if DB with such name already exists. --- mysql-test/suite/rpl/r/rpl_row_create_table.result | 2 ++ mysql-test/suite/rpl/t/rpl_row_create_table.test | 3 +++ 2 files changed, 5 insertions(+) diff --git a/mysql-test/suite/rpl/r/rpl_row_create_table.result b/mysql-test/suite/rpl/r/rpl_row_create_table.result index ad659c37b7f..b6dede79b9d 100644 --- a/mysql-test/suite/rpl/r/rpl_row_create_table.result +++ b/mysql-test/suite/rpl/r/rpl_row_create_table.result @@ -436,11 +436,13 @@ reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; +DROP DATABASE IF EXISTS mysqltest1; CREATE DATABASE mysqltest1; CREATE TABLE mysqltest1.without_select (f1 BIGINT); CREATE TABLE mysqltest1.with_select AS SELECT 1 AS f1; show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Query # # DROP DATABASE IF EXISTS mysqltest1 master-bin.000001 # Query # # CREATE DATABASE mysqltest1 master-bin.000001 # Query # # use `test`; CREATE TABLE mysqltest1.without_select (f1 BIGINT) master-bin.000001 # Query # # use `test`; BEGIN diff --git a/mysql-test/suite/rpl/t/rpl_row_create_table.test b/mysql-test/suite/rpl/t/rpl_row_create_table.test index 3fb5aa8e1f2..e4825a4abfd 100644 --- a/mysql-test/suite/rpl/t/rpl_row_create_table.test +++ b/mysql-test/suite/rpl/t/rpl_row_create_table.test @@ -266,6 +266,9 @@ sync_slave_with_master; source include/master-slave-reset.inc; connection master; +--disable_warnings +DROP DATABASE IF EXISTS mysqltest1; +--enable_warnings CREATE DATABASE mysqltest1; CREATE TABLE mysqltest1.without_select (f1 BIGINT); From 011d84bb2769fe765e46dfba60acfa2de4e91b53 Mon Sep 17 00:00:00 2001 From: Serge Kozlov Date: Thu, 27 Nov 2008 15:15:14 +0300 Subject: [PATCH 04/11] Bug#40145. Argument for LOAD_FILE() can be too long and sometimes a query with two or more these functions truncated. Therefore data from each LOAD_FILE() copied into its local variables and then used in a query. --- mysql-test/r/general_log_func.result | 7 ++++--- mysql-test/t/general_log_func.test | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mysql-test/r/general_log_func.result b/mysql-test/r/general_log_func.result index 012a1383497..4b6cbda6eff 100644 --- a/mysql-test/r/general_log_func.result +++ b/mysql-test/r/general_log_func.result @@ -27,9 +27,10 @@ INSERT into t1(name) values('Record_3'); INSERT into t1(name) values('Record_4'); ## There should be a difference ## SET @@session.max_allowed_packet= 1024*1024*1024; -select -STRCMP(load_file('MYSQLD_LOGFILE.orig'), load_file('MYSQLD_LOGFILE.copy')); -STRCMP(load_file('MYSQLD_LOGFILE.orig'), load_file('MYSQLD_LOGFILE.copy')) +SET @orig_file= load_file('MYSQLD_LOGFILE.orig'); +SET @copy_file= load_file('MYSQLD_LOGFILE.copy'); +SELECT STRCMP(@orig_file, @copy_file); +STRCMP(@orig_file, @copy_file) 1 ## Dropping tables ## DROP TABLE t1; diff --git a/mysql-test/t/general_log_func.test b/mysql-test/t/general_log_func.test index 3539b978c55..20b875388c1 100644 --- a/mysql-test/t/general_log_func.test +++ b/mysql-test/t/general_log_func.test @@ -81,8 +81,10 @@ INSERT into t1(name) values('Record_4'); --echo ## There should be a difference ## SET @@session.max_allowed_packet= 1024*1024*1024; --replace_result $MYSQLD_LOGFILE MYSQLD_LOGFILE -eval select - STRCMP(load_file('$MYSQLD_LOGFILE.orig'), load_file('$MYSQLD_LOGFILE.copy')); +eval SET @orig_file= load_file('$MYSQLD_LOGFILE.orig'); +--replace_result $MYSQLD_LOGFILE MYSQLD_LOGFILE +eval SET @copy_file= load_file('$MYSQLD_LOGFILE.copy'); +eval SELECT STRCMP(@orig_file, @copy_file); --remove_file $MYSQLD_LOGFILE.copy --remove_file $MYSQLD_LOGFILE.orig From 04566625396c74740405fe3abfab3ef819803ad0 Mon Sep 17 00:00:00 2001 From: Sven Sandberg Date: Tue, 2 Dec 2008 20:07:18 +0100 Subject: [PATCH 05/11] BUG#41018: innodb_max_dirty_pages_pct_func fails sporadically: error 28 from storage engine BUG#39382: innodb_max_dirty_pages_pct_func failed with timeout on pushbuild Disabled innodb_max_dirty_pages_pct_func. Please re-enable if the test gets fixed. mysql-test/t/disabled.def: Disabled innodb_max_dirty_pages_pct_func. --- mysql-test/t/disabled.def | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def index d21842b7141..bf141cbfa41 100644 --- a/mysql-test/t/disabled.def +++ b/mysql-test/t/disabled.def @@ -24,3 +24,4 @@ sql_low_priority_updates_func : BUG#37962 2008-07-08 sven *_func tests c timestamp_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions log_output_func : BUG#37766 2008-07-10 sven main.log_output_func randomly fails in pushbuild slow_query_log_func.test : Bug #37962: *_func tests containing sleeps/race conditions +innodb_max_dirty_pages_pct_func : BUG#41018 BUG#39382 2008-12-02 sven test fails often. some failures fill up the disk, causing subsequent failures in many other tests From d2e0e3ce356d2f82cccdeecf62369641d7e20c3a Mon Sep 17 00:00:00 2001 From: Bjorn Munch Date: Wed, 3 Dec 2008 14:11:03 +0100 Subject: [PATCH 06/11] Bug #40924 please print timestamp when mtr fails Added text "Test ended at