--source include/have_innodb.inc --source include/have_file_key_management_plugin.inc --source include/not_embedded.inc # This is needed for longer testcase timeout at least P7/P8 --source include/big_test.inc # # MDEV-8164: Server crashes in pfs_mutex_enter_func after fil_crypt_is_closing or alike # SET default_storage_engine = InnoDB; CREATE TABLE t1 (pk INT PRIMARY KEY, c VARCHAR(256)); CREATE TABLE t2 AS SELECT * FROM t1; --disable_abort_on_error --disable_warnings --disable_query_log let $i = 40; while ($i) { SET GLOBAL innodb_encrypt_tables = ON; SET GLOBAL innodb_encryption_threads = 1; CREATE OR REPLACE TABLE t1 AS SELECT * FROM t2; CREATE OR REPLACE TABLE t2 AS SELECT * FROM t1; SET GLOBAL innodb_encryption_rotation_iops = 100; SET GLOBAL innodb_encrypt_tables = OFF; CREATE OR REPLACE TABLE t2 AS SELECT * FROM t1; CREATE OR REPLACE TABLE t1 AS SELECT * FROM t2; dec $i; } --enable_abort_on_error --enable_warnings --enable_query_log drop table t1,t2; SET GLOBAL innodb_encryption_threads = 0; # # MDEV-8173: InnoDB; Failing assertion: crypt_data->type == 1 # SET GLOBAL innodb_encryption_threads = 4; CREATE TABLE `table10_int_autoinc` (`col_int_key` int, pk int auto_increment, `col_int` int, key (`col_int_key` ),primary key (pk)) engine=innodb; INSERT /*! IGNORE */ INTO table10_int_autoinc VALUES (NULL, NULL, -474021888) , (1, NULL, NULL) , (1141047296, NULL, NULL) , (NULL, NULL, NULL) , (NULL, NULL, 1) , (NULL, NULL, 9) , (0, NULL, 1225785344) , (NULL, NULL, 1574174720) , (2, NULL, NULL) , (6, NULL, 3); CREATE TABLE `table1_int_autoinc` (`col_int_key` int, pk int auto_increment, `col_int` int,key (`col_int_key` ), primary key (pk)) engine=innodb; CREATE TABLE `table0_int_autoinc` (`col_int_key` int, pk int auto_increment, `col_int` int, key (`col_int_key` ),primary key (pk)) engine=innodb; INSERT /*! IGNORE */ INTO table1_int_autoinc VALUES (4, NULL, NULL); INSERT IGNORE INTO `table0_int_autoinc` ( `col_int_key` ) VALUES ( 1 ), ( 3 ), ( 4 ), ( 1 ); INSERT IGNORE INTO `table1_int_autoinc` ( `col_int` ) VALUES ( 1 ), ( 0 ), ( 7 ), ( 9 ); INSERT IGNORE INTO `table10_int_autoinc` ( `col_int` ) VALUES ( 6 ), ( 2 ), ( 3 ), ( 6 ); --echo # Wait max 10 min for key encryption threads to decrypt all spaces let $cnt=600; while ($cnt) { let $success=`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0`; if ($success) { let $cnt=0; } if (!$success) { real_sleep 1; dec $cnt; } } if (!$success) { SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION; SHOW STATUS LIKE 'innodb_encryption%'; -- die Timeout waiting for encryption threads } --echo # Success! SET GLOBAL innodb_encryption_threads = 0; SET GLOBAL innodb_encrypt_tables = OFF; DROP TABLE table0_int_autoinc, table1_int_autoinc, table10_int_autoinc; -- source include/restart_mysqld.inc