summaryrefslogtreecommitdiff
path: root/mysql-test/suite/encryption
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-09-21 17:42:02 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2020-09-21 17:42:02 +0300
commit952a028a52f6e1b7067efa25b1a7d57721a8f3f6 (patch)
tree7d3c3b3cff2e8f7efd280f3bf95064a352fa1783 /mysql-test/suite/encryption
parent3a423088ac4f854448803d8af14e0d176b08f0af (diff)
parent2cf489d4305227115177b435ec536fe8f84daa6b (diff)
downloadmariadb-git-952a028a52f6e1b7067efa25b1a7d57721a8f3f6.tar.gz
Merge 10.3 into 10.4
We omit commit a3bdce8f1e268e3ac57644faf91c9c5ad43f5291 and commit a0e2a293bcc25fb10888fd00bd63bce04c195524 because they would make the test galera_3nodes.galera_gtid_2_cluster fail and disable it.
Diffstat (limited to 'mysql-test/suite/encryption')
-rw-r--r--mysql-test/suite/encryption/r/create_or_replace.result20
-rw-r--r--mysql-test/suite/encryption/r/create_or_replace_big.result20
-rw-r--r--mysql-test/suite/encryption/t/create_or_replace.test86
-rw-r--r--mysql-test/suite/encryption/t/create_or_replace_big.opt (renamed from mysql-test/suite/encryption/t/create_or_replace.opt)0
-rw-r--r--mysql-test/suite/encryption/t/create_or_replace_big.test86
5 files changed, 125 insertions, 87 deletions
diff --git a/mysql-test/suite/encryption/r/create_or_replace.result b/mysql-test/suite/encryption/r/create_or_replace.result
index f876de7346f..62dac4ccc43 100644
--- a/mysql-test/suite/encryption/r/create_or_replace.result
+++ b/mysql-test/suite/encryption/r/create_or_replace.result
@@ -1,8 +1,6 @@
+SET @save_threads = @@GLOBAL.innodb_encryption_threads;
+SET @save_tables = @@GLOBAL.innodb_encrypt_tables;
SET default_storage_engine = InnoDB;
-CREATE TABLE t1 (pk INT PRIMARY KEY, c VARCHAR(256));
-CREATE TABLE t2 AS SELECT * FROM t1;
-drop table t1,t2;
-SET GLOBAL innodb_encryption_threads = 0;
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);
@@ -14,14 +12,10 @@ INSERT IGNORE INTO `table1_int_autoinc` ( `col_int` ) VALUES ( 1 ), ( 0 ), ( 7 )
INSERT IGNORE INTO `table10_int_autoinc` ( `col_int` ) VALUES ( 6 ), ( 2 ), ( 3 ), ( 6 );
connect con1,localhost,root,,test;
connect con2,localhost,root,,test;
-connection default;
-drop table if exists create_or_replace_t, table1_int_autoinc, table0_int_autoinc, table10_int_autoinc;
disconnect con1;
disconnect con2;
-SET GLOBAL innodb_encrypt_tables = OFF;
-SET GLOBAL innodb_encryption_threads = 4;
-# Wait max 10 min for key encryption threads to decrypt all spaces
-# Success!
-SET GLOBAL innodb_encryption_threads = 0;
-SET GLOBAL innodb_encrypt_tables = OFF;
-# restart
+connection default;
+drop table create_or_replace_t, table1_int_autoinc, table0_int_autoinc,
+table10_int_autoinc;
+SET GLOBAL innodb_encryption_threads = @save_threads;
+SET GLOBAL innodb_encrypt_tables = @save_tables;
diff --git a/mysql-test/suite/encryption/r/create_or_replace_big.result b/mysql-test/suite/encryption/r/create_or_replace_big.result
new file mode 100644
index 00000000000..2eabab45f0b
--- /dev/null
+++ b/mysql-test/suite/encryption/r/create_or_replace_big.result
@@ -0,0 +1,20 @@
+SET default_storage_engine = InnoDB;
+CREATE TABLE t1 (pk INT PRIMARY KEY, c VARCHAR(256));
+CREATE TABLE t2 AS SELECT * FROM t1;
+drop table t1,t2;
+SET GLOBAL innodb_encryption_threads = 0;
+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 );
+# Wait max 10 min for key encryption threads to decrypt all spaces
+# Success!
+SET GLOBAL innodb_encryption_threads = 0;
+SET GLOBAL innodb_encrypt_tables = OFF;
+DROP TABLE table0_int_autoinc, table1_int_autoinc, table10_int_autoinc;
+# restart
diff --git a/mysql-test/suite/encryption/t/create_or_replace.test b/mysql-test/suite/encryption/t/create_or_replace.test
index 3b2970e5162..8d571794713 100644
--- a/mysql-test/suite/encryption/t/create_or_replace.test
+++ b/mysql-test/suite/encryption/t/create_or_replace.test
@@ -1,41 +1,11 @@
--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
+--source include/count_sessions.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
+SET @save_threads = @@GLOBAL.innodb_encryption_threads;
+SET @save_tables = @@GLOBAL.innodb_encrypt_tables;
-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;
+SET default_storage_engine = InnoDB;
#
# MDEV-8173: InnoDB; Failing assertion: crypt_data->type == 1
@@ -58,11 +28,9 @@ INSERT IGNORE INTO `table10_int_autoinc` ( `col_int` ) VALUES ( 6 ), ( 2 ), ( 3
--connect (con1,localhost,root,,test)
--connect (con2,localhost,root,,test)
---disable_abort_on_error
---disable_warnings
--disable_query_log
-let $i = 500;
+let $i = 100;
while ($i)
{
connection con1;
@@ -101,42 +69,12 @@ dec $i;
}
--enable_query_log
+disconnect con1;
+disconnect con2;
connection default;
-drop table if exists create_or_replace_t, table1_int_autoinc, table0_int_autoinc, table10_int_autoinc;
---disconnect con1
---disconnect con2
---enable_abort_on_error
---enable_warnings
-
-SET GLOBAL innodb_encrypt_tables = OFF;
-SET GLOBAL innodb_encryption_threads = 4;
-
---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;
-
-# Make sure that all dirty pages are flushed
+drop table create_or_replace_t, table1_int_autoinc, table0_int_autoinc,
+table10_int_autoinc;
--- source include/restart_mysqld.inc
+SET GLOBAL innodb_encryption_threads = @save_threads;
+SET GLOBAL innodb_encrypt_tables = @save_tables;
+--source include/wait_until_count_sessions.inc
diff --git a/mysql-test/suite/encryption/t/create_or_replace.opt b/mysql-test/suite/encryption/t/create_or_replace_big.opt
index 7d3f2da7971..7d3f2da7971 100644
--- a/mysql-test/suite/encryption/t/create_or_replace.opt
+++ b/mysql-test/suite/encryption/t/create_or_replace_big.opt
diff --git a/mysql-test/suite/encryption/t/create_or_replace_big.test b/mysql-test/suite/encryption/t/create_or_replace_big.test
new file mode 100644
index 00000000000..133bdfa3cb2
--- /dev/null
+++ b/mysql-test/suite/encryption/t/create_or_replace_big.test
@@ -0,0 +1,86 @@
+--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