summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/innodb/t/purge_thread_shutdown.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/innodb/t/purge_thread_shutdown.test')
-rw-r--r--mysql-test/suite/innodb/t/purge_thread_shutdown.test43
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;