From 5e7d3543261ad31247adaa920f0f8e4111529d59 Mon Sep 17 00:00:00 2001 From: Vasil Dimov Date: Thu, 17 Feb 2011 19:09:53 +0200 Subject: [PATCH 1/2] Fix the non-determinism in innodb_information_schema.test Thanks to Kristian Nielsen for finding out the root cause for the failure, see: https://bugs.launchpad.net/maria/+bug/677407 --- .../t/innodb_information_schema.test | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/mysql-test/suite/innodb_plugin/t/innodb_information_schema.test b/mysql-test/suite/innodb_plugin/t/innodb_information_schema.test index 25255e0b2a9..20c25015c56 100644 --- a/mysql-test/suite/innodb_plugin/t/innodb_information_schema.test +++ b/mysql-test/suite/innodb_plugin/t/innodb_information_schema.test @@ -116,11 +116,29 @@ SELECT * FROM ```t'\"_str` WHERE c1 = '4' FOR UPDATE; # executes before some of them, resulting in less than expected number # of rows being selected from innodb_locks. If there is a bug and there # are no 14 rows in innodb_locks then this test will fail with timeout. -let $count = 14; -let $table = INFORMATION_SCHEMA.INNODB_LOCKS; --- source include/wait_until_rows_count.inc -# the above enables the query log, re-disable it --- disable_query_log +# Notice that if we query INNODB_LOCKS more often than once per 0.1 sec +# then its contents will never change because the cache from which it is +# filled is updated only if it has not been read for 0.1 seconds. See +# CACHE_MIN_IDLE_TIME_US in trx/trx0i_s.c. +let $cnt=10; +while ($cnt) +{ + let $success=`SELECT COUNT(*) = 14 FROM INFORMATION_SCHEMA.INNODB_LOCKS`; + if ($success) + { + let $cnt=0; + } + if (!$success) + { + real_sleep 0.2; + dec $cnt; + } +} +if (!$success) +{ + -- echo Timeout waiting for rows in INNODB_LOCKS to appear +} + SELECT lock_mode, lock_type, lock_table, lock_index, lock_rec, lock_data FROM INFORMATION_SCHEMA.INNODB_LOCKS ORDER BY lock_data; From db55cf85267001e495b91a30c0004679deaf07a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 17 Feb 2011 22:25:33 +0200 Subject: [PATCH 2/2] Allow 30 seconds for slow shutdown in the Bug #60049 test. --- mysql-test/suite/innodb/t/innodb_bug60049.test | 2 +- mysql-test/suite/innodb_plugin/t/innodb_bug60049.test | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/suite/innodb/t/innodb_bug60049.test b/mysql-test/suite/innodb/t/innodb_bug60049.test index b35fb12cc5e..ec4e3b8de7e 100644 --- a/mysql-test/suite/innodb/t/innodb_bug60049.test +++ b/mysql-test/suite/innodb/t/innodb_bug60049.test @@ -13,7 +13,7 @@ let $MYSQLD_DATADIR=`select @@datadir`; # Shut down the server -- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --- shutdown_server 10 +-- shutdown_server 30 -- source include/wait_until_disconnected.inc # Check the tail of ID_IND (SYS_TABLES.ID) diff --git a/mysql-test/suite/innodb_plugin/t/innodb_bug60049.test b/mysql-test/suite/innodb_plugin/t/innodb_bug60049.test index 8d6c38ff9ef..0423f5d3635 100644 --- a/mysql-test/suite/innodb_plugin/t/innodb_bug60049.test +++ b/mysql-test/suite/innodb_plugin/t/innodb_bug60049.test @@ -13,7 +13,7 @@ let $MYSQLD_DATADIR=`select @@datadir`; # Shut down the server -- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect --- shutdown_server 10 +-- shutdown_server 30 -- source include/wait_until_disconnected.inc # Check the tail of ID_IND (SYS_TABLES.ID)