From 224082fc6b67ea3f5cd15efa4448bd36a125ccb3 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 6 Jul 2006 23:49:09 +0200 Subject: [PATCH 1/2] BUG#19951: Race conditions in test wait_timeout. Fix random failures in test 'wait_timeout' that depend on exact timing. 1. Force a reconnect initially if necessary, as otherwise slow startup might have caused a connection timeout before the test can even start. 2. Explicitly disconnect the first connection to remove confusion about which connection aborts from timeout, causing test failure. mysql-test/r/wait_timeout.result: Fix two races in test. mysql-test/t/wait_timeout.test: Fix two races in test. --- mysql-test/r/wait_timeout.result | 4 ++++ mysql-test/t/wait_timeout.test | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/wait_timeout.result b/mysql-test/r/wait_timeout.result index 683986abf5d..b865a17454d 100644 --- a/mysql-test/r/wait_timeout.result +++ b/mysql-test/r/wait_timeout.result @@ -1,3 +1,7 @@ +select 0; +0 +0 +flush status; select 1; 1 1 diff --git a/mysql-test/t/wait_timeout.test b/mysql-test/t/wait_timeout.test index 8387c08c902..195d1a5d3f2 100644 --- a/mysql-test/t/wait_timeout.test +++ b/mysql-test/t/wait_timeout.test @@ -9,16 +9,20 @@ # Connect with another connection and reset counters --disable_query_log connect (wait_con,localhost,root,,test,,); -flush status; # Reset counters connection wait_con; set session wait_timeout=100; let $retries=300; -let $aborted_clients = `SHOW STATUS LIKE 'aborted_clients'`; set @aborted_clients= 0; --enable_query_log # Disable reconnect and do the query connection default; +# If slow host (Valgrind...), we may have already timed out here. +# So force a reconnect if necessary, using a dummy query. And issue a +# 'flush status' to reset the 'aborted_clients' counter. +--enable_reconnect +select 0; +flush status; --disable_reconnect select 1; @@ -46,6 +50,9 @@ connection default; select 2; --enable_reconnect select 3; +# Disconnect so that we will not be confused by a future abort from this +# connection. +disconnect default # # Do the same test as above on a TCP connection @@ -56,7 +63,6 @@ select 3; connection wait_con; flush status; # Reset counters let $retries=300; -let $aborted_clients = `SHOW STATUS LIKE 'aborted_clients'`; set @aborted_clients= 0; --enable_query_log From 719248524e14ef91515a09884a2db23bb853f66d Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 7 Jul 2006 17:20:49 +0200 Subject: [PATCH 2/2] BUG#20902: Test failure in ndb_alter_table3 with statement-based binlogging Disable test cases ndb_alter_table3, ndb_autodiscover3, ndb_dd_advance, and ndb_multi in statement-based binlogging mode until bug can be fixed. mysql-test/t/ndb_alter_table3.test: Disable test in statement-based binlogging mode. mysql-test/t/ndb_autodiscover3.test: Disable test in statement-based binlogging mode. mysql-test/t/ndb_dd_advance.test: Disable test in statement-based binlogging mode. mysql-test/t/ndb_multi.test: Disable test in statement-based binlogging mode. --- mysql-test/t/ndb_alter_table3.test | 3 +++ mysql-test/t/ndb_autodiscover3.test | 3 +++ mysql-test/t/ndb_dd_advance.test | 3 +++ mysql-test/t/ndb_multi.test | 3 +++ 4 files changed, 12 insertions(+) diff --git a/mysql-test/t/ndb_alter_table3.test b/mysql-test/t/ndb_alter_table3.test index a5fe613adcf..b0295834563 100644 --- a/mysql-test/t/ndb_alter_table3.test +++ b/mysql-test/t/ndb_alter_table3.test @@ -2,6 +2,9 @@ -- source include/have_multi_ndb.inc -- source include/not_embedded.inc +# BUG#20902: Test fails in statement-based binlogging mode. Remove when fixed. +-- source include/have_binlog_format_row.inc + --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings diff --git a/mysql-test/t/ndb_autodiscover3.test b/mysql-test/t/ndb_autodiscover3.test index ed75c89cdd1..5c8a95f302b 100644 --- a/mysql-test/t/ndb_autodiscover3.test +++ b/mysql-test/t/ndb_autodiscover3.test @@ -2,6 +2,9 @@ -- source include/have_multi_ndb.inc -- source include/not_embedded.inc +# BUG#20902: Test fails in statement-based binlogging mode. Remove when fixed. +-- source include/have_binlog_format_row.inc + --disable_warnings drop table if exists t1, t2; diff --git a/mysql-test/t/ndb_dd_advance.test b/mysql-test/t/ndb_dd_advance.test index e882ec794c1..51d01c139f0 100755 --- a/mysql-test/t/ndb_dd_advance.test +++ b/mysql-test/t/ndb_dd_advance.test @@ -28,6 +28,9 @@ -- source include/have_ndb.inc -- source include/not_embedded.inc +# BUG#20902: Test fails in statement-based binlogging mode. Remove when fixed. +-- source include/have_binlog_format_row.inc + --disable_warnings DROP TABLE IF EXISTS test.t1; DROP TABLE IF EXISTS test.t2; diff --git a/mysql-test/t/ndb_multi.test b/mysql-test/t/ndb_multi.test index d2dc0561955..5b04612bbc5 100644 --- a/mysql-test/t/ndb_multi.test +++ b/mysql-test/t/ndb_multi.test @@ -3,6 +3,9 @@ -- source include/not_embedded.inc -- source include/have_binlog_format_statement.inc +# BUG#20902: Test fails in statement-based binlogging mode. Remove when fixed. +-- source include/have_binlog_format_row.inc + --disable_warnings connection server2;