Skip to content
Permalink
Browse files
MDEV-12903: encryption.innodb_encryption_discard_import fails in buil…
…dbot with FOUND vs NOT FOUND

Wait until rotation has ended and shutdown before grep to make sure
that dirty pages are on datafiles.
  • Loading branch information
Jan Lindström committed Apr 12, 2018
1 parent d985146 commit 9518ddd
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
@@ -73,6 +73,8 @@ NOT FOUND /foobar/ in t1.ibd
NOT FOUND /temp/ in t2.ibd
# t3 ... on expecting NOT FOUND
NOT FOUND /barfoo/ in t3.ibd
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
ALTER TABLE t1 ENGINE InnoDB;
SHOW CREATE TABLE t1;
Table Create Table
@@ -50,10 +50,12 @@ set autocommit=1;

--echo # Wait max 10 min for key encryption threads to encrypt all spaces
--let $wait_timeout= 600
--let $wait_condition=SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0
--let $wait_condition=SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND ROTATING_OR_FLUSHING <> 0
--source include/wait_condition.inc

--sleep 5
# shutdown so that grep is safe
--source include/shutdown_mysqld.inc

--echo # tablespaces should be now encrypted
--let SEARCH_PATTERN=foobar
--echo # t1 yes on expecting NOT FOUND
@@ -68,7 +70,9 @@ set autocommit=1;
-- let SEARCH_FILE=$t3_IBD
-- source include/search_pattern_in_file.inc

--source include/start_mysqld.inc
let MYSQLD_DATADIR =`SELECT @@datadir`;

--list_files $MYSQLD_DATADIR/test
FLUSH TABLES t1, t2, t3 FOR EXPORT;
perl;
@@ -95,7 +99,9 @@ SELECT COUNT(1) FROM t2;
ALTER TABLE t3 IMPORT TABLESPACE;
SELECT COUNT(1) FROM t3;

--sleep 5
# shutdown so that grep is safe
--source include/shutdown_mysqld.inc

--echo # tablespaces should remain encrypted after import
--let SEARCH_PATTERN=foobar
--echo # t1 yes on expecting NOT FOUND
@@ -110,6 +116,13 @@ SELECT COUNT(1) FROM t3;
-- let SEARCH_FILE=$t3_IBD
-- source include/search_pattern_in_file.inc

--source include/start_mysqld.inc

--disable_warnings
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
--enable_warnings

ALTER TABLE t1 ENGINE InnoDB;
SHOW CREATE TABLE t1;
ALTER TABLE t2 ENGINE InnoDB;
@@ -126,7 +139,9 @@ SELECT COUNT(1) FROM t1;
SELECT COUNT(1) FROM t2;
SELECT COUNT(1) FROM t3;

--sleep 5
# shutdown so that grep is safe
--source include/shutdown_mysqld.inc

--echo # Tablespaces should be encrypted after restart
--let SEARCH_PATTERN=foobar
--echo # t1 yes on expecting NOT FOUND
@@ -141,9 +156,11 @@ SELECT COUNT(1) FROM t3;
-- let SEARCH_FILE=$t3_IBD
-- source include/search_pattern_in_file.inc

--source include/start_mysqld.inc

--echo # Wait max 10 min for key encryption threads to encrypt all spaces
--let $wait_timeout= 600
--let $wait_condition=SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0
--let $wait_condition=SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND ROTATING_OR_FLUSHING <> 0
--source include/wait_condition.inc

--echo # Success!

0 comments on commit 9518ddd

Please sign in to comment.