From fe6eac0cf7ecf1b38e8cf243104e185b8c67eae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 16 Aug 2019 09:50:54 +0300 Subject: [PATCH] MDEV-19200: shutdown timeout on innodb.undo_truncate_recover Optimize the test by dropping the table early and by using only one undo log thread, so that purge will be doing more useful work and less busy work of suspending and resuming the worker threads. The test used to cause shutdown timeout on 10.4 on buildbot, and for me locally when using --mysqld=--innodb-sync-debug. With these tweaks, it passes for me with --mysqld=--innodb-sync-debug. --- mysql-test/suite/innodb/r/undo_truncate_recover.result | 2 +- mysql-test/suite/innodb/t/undo_truncate_recover.opt | 1 + mysql-test/suite/innodb/t/undo_truncate_recover.test | 3 +-- 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 mysql-test/suite/innodb/t/undo_truncate_recover.opt diff --git a/mysql-test/suite/innodb/r/undo_truncate_recover.result b/mysql-test/suite/innodb/r/undo_truncate_recover.result index e1b6a67368b..03393f38aed 100644 --- a/mysql-test/suite/innodb/r/undo_truncate_recover.result +++ b/mysql-test/suite/innodb/r/undo_truncate_recover.result @@ -9,8 +9,8 @@ update t1 set c = 'MariaDB'; update t1 set c = 'InnoDB'; set global debug_dbug = '+d,ib_undo_trunc'; commit; +drop table t1; call mtr.add_suppression("InnoDB: innodb_undo_tablespaces=0 disables dedicated undo log tablespaces"); call mtr.add_suppression("InnoDB: The transaction log size is too large"); SET GLOBAL innodb_fast_shutdown=0; FOUND 1 /ib_undo_trunc/ in mysqld.1.err -drop table t1; diff --git a/mysql-test/suite/innodb/t/undo_truncate_recover.opt b/mysql-test/suite/innodb/t/undo_truncate_recover.opt new file mode 100644 index 00000000000..a1207721427 --- /dev/null +++ b/mysql-test/suite/innodb/t/undo_truncate_recover.opt @@ -0,0 +1 @@ +--innodb-purge-threads=1 diff --git a/mysql-test/suite/innodb/t/undo_truncate_recover.test b/mysql-test/suite/innodb/t/undo_truncate_recover.test index c28a2154f92..94e09ed0e64 100644 --- a/mysql-test/suite/innodb/t/undo_truncate_recover.test +++ b/mysql-test/suite/innodb/t/undo_truncate_recover.test @@ -34,6 +34,7 @@ update t1 set c = 'MariaDB'; update t1 set c = 'InnoDB'; eval set global debug_dbug = '+d,$SEARCH_PATTERN'; commit; +drop table t1; call mtr.add_suppression("InnoDB: innodb_undo_tablespaces=0 disables dedicated undo log tablespaces"); # FIXME: remove this work-around, and generate less log! call mtr.add_suppression("InnoDB: The transaction log size is too large"); @@ -43,5 +44,3 @@ SET GLOBAL innodb_fast_shutdown=0; # FIXME: remove this work-around, and generate less log! --let $restart_parameters= --innodb-buffer-pool-size=16m --innodb-undo-tablespaces=1 --source include/start_mysqld.inc - -drop table t1;