diff options
Diffstat (limited to 'mysql-test/suite/innodb/t/purge_thread_shutdown.test')
-rw-r--r-- | mysql-test/suite/innodb/t/purge_thread_shutdown.test | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/t/purge_thread_shutdown.test b/mysql-test/suite/innodb/t/purge_thread_shutdown.test new file mode 100644 index 00000000..53b375b8 --- /dev/null +++ b/mysql-test/suite/innodb/t/purge_thread_shutdown.test @@ -0,0 +1,43 @@ +source include/have_innodb.inc; +source include/not_embedded.inc; +source include/have_debug.inc; + +connect con1, localhost, root; +create table t1 (a int) engine=innodb; +insert t1 values (1),(2),(3),(4); +delete from t1 where a=1; + +select user,state from information_schema.processlist order by 2; + +set global debug_dbug='+d,only_kill_system_threads'; +set global innodb_fast_shutdown=0; + +--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect +exec echo "wait" > $_expect_file_name; +send shutdown; + +connection default; +disconnect con1; + +sleep 5; +select user,state from information_schema.processlist order by 2; +set global innodb_fast_shutdown=1; + +let $wait_condition=select count(*) = 0 from information_schema.processlist where user='system user'; +source include/wait_condition.inc; +select user,state from information_schema.processlist order by 2; + +delete from t1 where a=3; +error ER_WRONG_VALUE_FOR_VAR; +set global innodb_fast_shutdown=0; + +# Get id with space prefix to ensure that replace_result doesn't replace +# the error code +let $me=`select concat(' ', connection_id())`; +replace_result $me ID; +error ER_CONNECTION_KILLED, 2026; +eval kill $me; + +source include/start_mysqld.inc; +drop table t1; |