From 763f105dff3aada394cd7c6b94b3e5867f79c1b9 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 17 Apr 2007 14:41:16 +0300 Subject: [PATCH] Fixed federated and some replication tests to not stop slave until it's up and running. (Removes some warnings about UNIX_TIMESTAMP from the slave.err logs) Marked federated_server as a '--big-test' Change error in net_clear to 'Note', as it interfered with mysql-test-run. client/mysqltest.c: More DBUG messages Adding missing DBUG_RETURN mysql-test/extra/rpl_tests/rpl_max_relay_size.test: Added missing sync_slave_with_master mysql-test/extra/rpl_tests/rpl_relayrotate.test: Added missing sync_slave_with_master mysql-test/include/federated.inc: Don't do stop slave before the slave has started properly (Removes some warnings about UNIX_TIMESTAMP from the slave.err logs) mysql-test/include/federated_cleanup.inc: Trivial cleanup mysql-test/t/federated_server.test: Don't run this unless under --big-test Made test-loop smaller. (We will find out errors in code over time, as the test is run under a lot of difference machines which will compensate for the smaller loop) mysql-test/t/rpl_flushlog_loop.test: Added missing sync_slave_with_master sql/net_serv.cc: Change error to Note (low level warning), as it interfered with mysql-test-run. This is probably fine as we in some context on sever shutdown can get information about connection shutdown on the connection while we are doing a query at the same time. Still, in normal context one should get this, so it's good to have it in the log as it enables one to find errors easier. sql/slave.cc: Added reason to why things failed to error message --- client/mysqltest.c | 7 ++++--- mysql-test/extra/rpl_tests/rpl_max_relay_size.test | 3 +++ mysql-test/extra/rpl_tests/rpl_relayrotate.test | 4 ++++ mysql-test/include/federated.inc | 5 +++++ mysql-test/include/federated_cleanup.inc | 2 -- mysql-test/t/federated_server.test | 5 +++-- mysql-test/t/rpl_flushlog_loop.test | 3 +++ sql/net_serv.cc | 2 +- sql/slave.cc | 6 ++++-- 9 files changed, 27 insertions(+), 10 deletions(-) diff --git a/client/mysqltest.c b/client/mysqltest.c index 8b5c657f75f..360409e9611 100644 --- a/client/mysqltest.c +++ b/client/mysqltest.c @@ -2552,6 +2552,7 @@ int do_save_master_pos() MYSQL *mysql = &cur_con->mysql; const char *query; int rpl_parse; + DBUG_ENTER("do_save_master_pos"); rpl_parse = mysql_rpl_parse_enabled(mysql); mysql_disable_rpl_parse(mysql); @@ -2709,7 +2710,7 @@ int do_save_master_pos() if (rpl_parse) mysql_enable_rpl_parse(mysql); - return 0; + DBUG_RETURN(0); } @@ -3164,7 +3165,7 @@ struct st_connection * find_connection_by_name(const char *name) int select_connection_name(const char *name) { - DBUG_ENTER("select_connection2"); + DBUG_ENTER("select_connection_name"); DBUG_PRINT("enter",("name: '%s'", name)); if (!(cur_con= find_connection_by_name(name))) @@ -3187,7 +3188,7 @@ int select_connection(struct st_command *command) if (*p) *p++= 0; command->last_argument= p; - return select_connection_name(name); + DBUG_RETURN(select_connection_name(name)); } diff --git a/mysql-test/extra/rpl_tests/rpl_max_relay_size.test b/mysql-test/extra/rpl_tests/rpl_max_relay_size.test index 5b995374ba0..d05fefe916b 100644 --- a/mysql-test/extra/rpl_tests/rpl_max_relay_size.test +++ b/mysql-test/extra/rpl_tests/rpl_max_relay_size.test @@ -6,6 +6,9 @@ # Requires statement logging -- source include/master-slave.inc +# We have to sync with master, to ensure slave had time to start properly +# before we stop it. If not, we get errors about UNIX_TIMESTAMP() in the log. +sync_slave_with_master; connection slave; stop slave; connection master; diff --git a/mysql-test/extra/rpl_tests/rpl_relayrotate.test b/mysql-test/extra/rpl_tests/rpl_relayrotate.test index dc91f9e7fff..0d2f25e2b4a 100644 --- a/mysql-test/extra/rpl_tests/rpl_relayrotate.test +++ b/mysql-test/extra/rpl_tests/rpl_relayrotate.test @@ -10,6 +10,10 @@ -- source include/master-slave.inc +# We have to sync with master, to ensure slave had time to start properly +# before we stop it. If not, we get errors about UNIX_TIMESTAMP() in the log. +connection master; +sync_slave_with_master; connection slave; stop slave; connection master; diff --git a/mysql-test/include/federated.inc b/mysql-test/include/federated.inc index c8e8ededa11..dde24cd8198 100644 --- a/mysql-test/include/federated.inc +++ b/mysql-test/include/federated.inc @@ -5,6 +5,11 @@ source ./include/master-slave.inc; # remote table creation +# We have to sync with master, to ensure slave had time to start properly +# before we stop it. If not, we get errors about UNIX_TIMESTAMP() in the log. +connection master; +sync_slave_with_master; + connection slave; #--replicate-ignore-db=federated stop slave; diff --git a/mysql-test/include/federated_cleanup.inc b/mysql-test/include/federated_cleanup.inc index 17a6e1e5100..06fd7f6737a 100644 --- a/mysql-test/include/federated_cleanup.inc +++ b/mysql-test/include/federated_cleanup.inc @@ -2,10 +2,8 @@ connection master; --disable_warnings DROP TABLE IF EXISTS federated.t1; DROP DATABASE IF EXISTS federated; ---enable_warnings connection slave; ---disable_warnings DROP TABLE IF EXISTS federated.t1; DROP DATABASE IF EXISTS federated; --enable_warnings diff --git a/mysql-test/t/federated_server.test b/mysql-test/t/federated_server.test index 20332f65bff..87b67720104 100644 --- a/mysql-test/t/federated_server.test +++ b/mysql-test/t/federated_server.test @@ -2,7 +2,8 @@ # if federated can utilise the servers table # should work with embedded server after mysqltest is fixed -- source include/not_embedded.inc -source include/federated.inc; +-- source include/federated.inc; +-- source include/big_test.inc connection slave; create database first_db; @@ -299,7 +300,7 @@ begin DECLARE i INT; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET e = e + 1; SET i = sleep(5); - WHILE v < 20000 do + WHILE v < 10000 do CREATE SERVER s FOREIGN DATA WRAPPER mysql OPTIONS (USER 'Remote', HOST '192.168.1.106', DATABASE 'test'); diff --git a/mysql-test/t/rpl_flushlog_loop.test b/mysql-test/t/rpl_flushlog_loop.test index ded111d769f..471c45a1aa3 100644 --- a/mysql-test/t/rpl_flushlog_loop.test +++ b/mysql-test/t/rpl_flushlog_loop.test @@ -5,6 +5,9 @@ # # Start replication master -> slave # +# We have to sync with master, to ensure slave had time to start properly +# before we stop it. If not, we get errors about UNIX_TIMESTAMP() in the log. +sync_slave_with_master; connection slave; --disable_warnings stop slave; diff --git a/sql/net_serv.cc b/sql/net_serv.cc index 778f82c92ef..719e2ee0d3c 100644 --- a/sql/net_serv.cc +++ b/sql/net_serv.cc @@ -299,7 +299,7 @@ void net_clear(NET *net, my_bool clear_buffer) DBUG_PRINT("info",("skipped %d bytes from file: %s", count, vio_description(net->vio))); #if defined(EXTRA_DEBUG) - fprintf(stderr,"Error: net_clear() skipped %d bytes from file: %s\n", + fprintf(stderr,"Note: net_clear() skipped %d bytes from file: %s\n", count, vio_description(net->vio)); #endif } diff --git a/sql/slave.cc b/sql/slave.cc index 2e2fd93ea86..1064fb27c4e 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -794,8 +794,10 @@ static int get_master_version_and_clock(MYSQL* mysql, MASTER_INFO* mi) else { mi->clock_diff_with_master= 0; /* The "most sensible" value */ - sql_print_warning("\"SELECT UNIX_TIMESTAMP()\" failed on master, \ -do not trust column Seconds_Behind_Master of SHOW SLAVE STATUS"); + sql_print_warning("\"SELECT UNIX_TIMESTAMP()\" failed on master, " + "do not trust column Seconds_Behind_Master of SHOW " + "SLAVE STATUS. Error: %s (%d)", + mysql_error(mysql), mysql_errno(mysql)); } if (master_res) mysql_free_result(master_res);