From b05be3ef8c8668ddbcbe8e1c08dcd4fcc88eb4cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 11 Oct 2019 08:24:30 +0300 Subject: [PATCH] Add encryption.innodb-redo-badkey,strict_full_crc32 In commit 0f7732d1d1d898f1a9051858932c18bcc9d6f2b4 we introduced a innodb_checksum_algorithm=full_crc32 combination to a number of encryption tests, and also fixed the code accordingly. The default in MariaDB 10.5 is innodb_checksum_algorithm=full_crc32. In a test merge to 10.5, the test encryption.innodb-redo-badkey failed once due to a message that had been added in that commit. Let us introduce a full_crc32 option to that test. And let us use strict_crc32 and strict_full_crc32 instead of the non-strict variants, for the previously augmented tests, to be in line with the earlier tests encryption.corrupted_during_recovery and encryption.innodb_encrypt_temporary_tables. --- mysql-test/suite/encryption/r/innodb-redo-badkey.result | 1 + .../encryption/t/innodb-bad-key-change.combinations | 9 +++++---- .../encryption/t/innodb-bad-key-change2.combinations | 9 +++++---- .../encryption/t/innodb-bad-key-change3.combinations | 9 +++++---- .../encryption/t/innodb-bad-key-change4.combinations | 9 +++++---- .../suite/encryption/t/innodb-redo-badkey.combinations | 5 +++++ mysql-test/suite/encryption/t/innodb-redo-badkey.test | 2 ++ 7 files changed, 28 insertions(+), 16 deletions(-) create mode 100644 mysql-test/suite/encryption/t/innodb-redo-badkey.combinations diff --git a/mysql-test/suite/encryption/r/innodb-redo-badkey.result b/mysql-test/suite/encryption/r/innodb-redo-badkey.result index 33746dd9a11..f90e7aeb780 100644 --- a/mysql-test/suite/encryption/r/innodb-redo-badkey.result +++ b/mysql-test/suite/encryption/r/innodb-redo-badkey.result @@ -7,6 +7,7 @@ call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed f call mtr.add_suppression("InnoDB: Failed to read file '.*' at offset .*"); call mtr.add_suppression("InnoDB: Plugin initialization aborted"); call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); +call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space="); # restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt # Wait max 10 min for key encryption threads to encrypt all spaces SET GLOBAL innodb_file_per_table = ON; diff --git a/mysql-test/suite/encryption/t/innodb-bad-key-change.combinations b/mysql-test/suite/encryption/t/innodb-bad-key-change.combinations index be3ecd67aa8..729380593f3 100644 --- a/mysql-test/suite/encryption/t/innodb-bad-key-change.combinations +++ b/mysql-test/suite/encryption/t/innodb-bad-key-change.combinations @@ -1,4 +1,5 @@ -[crc32] -loose-innodb-checksum-algorithm=crc32 -[full_crc32] -loose-innodb-checksum-algorithm=full_crc32 +[strict_crc32] +--innodb-checksum-algorithm=strict_crc32 + +[strict_full_crc32] +--innodb-checksum-algorithm=strict_full_crc32 diff --git a/mysql-test/suite/encryption/t/innodb-bad-key-change2.combinations b/mysql-test/suite/encryption/t/innodb-bad-key-change2.combinations index be3ecd67aa8..729380593f3 100644 --- a/mysql-test/suite/encryption/t/innodb-bad-key-change2.combinations +++ b/mysql-test/suite/encryption/t/innodb-bad-key-change2.combinations @@ -1,4 +1,5 @@ -[crc32] -loose-innodb-checksum-algorithm=crc32 -[full_crc32] -loose-innodb-checksum-algorithm=full_crc32 +[strict_crc32] +--innodb-checksum-algorithm=strict_crc32 + +[strict_full_crc32] +--innodb-checksum-algorithm=strict_full_crc32 diff --git a/mysql-test/suite/encryption/t/innodb-bad-key-change3.combinations b/mysql-test/suite/encryption/t/innodb-bad-key-change3.combinations index be3ecd67aa8..729380593f3 100644 --- a/mysql-test/suite/encryption/t/innodb-bad-key-change3.combinations +++ b/mysql-test/suite/encryption/t/innodb-bad-key-change3.combinations @@ -1,4 +1,5 @@ -[crc32] -loose-innodb-checksum-algorithm=crc32 -[full_crc32] -loose-innodb-checksum-algorithm=full_crc32 +[strict_crc32] +--innodb-checksum-algorithm=strict_crc32 + +[strict_full_crc32] +--innodb-checksum-algorithm=strict_full_crc32 diff --git a/mysql-test/suite/encryption/t/innodb-bad-key-change4.combinations b/mysql-test/suite/encryption/t/innodb-bad-key-change4.combinations index be3ecd67aa8..729380593f3 100644 --- a/mysql-test/suite/encryption/t/innodb-bad-key-change4.combinations +++ b/mysql-test/suite/encryption/t/innodb-bad-key-change4.combinations @@ -1,4 +1,5 @@ -[crc32] -loose-innodb-checksum-algorithm=crc32 -[full_crc32] -loose-innodb-checksum-algorithm=full_crc32 +[strict_crc32] +--innodb-checksum-algorithm=strict_crc32 + +[strict_full_crc32] +--innodb-checksum-algorithm=strict_full_crc32 diff --git a/mysql-test/suite/encryption/t/innodb-redo-badkey.combinations b/mysql-test/suite/encryption/t/innodb-redo-badkey.combinations new file mode 100644 index 00000000000..729380593f3 --- /dev/null +++ b/mysql-test/suite/encryption/t/innodb-redo-badkey.combinations @@ -0,0 +1,5 @@ +[strict_crc32] +--innodb-checksum-algorithm=strict_crc32 + +[strict_full_crc32] +--innodb-checksum-algorithm=strict_full_crc32 diff --git a/mysql-test/suite/encryption/t/innodb-redo-badkey.test b/mysql-test/suite/encryption/t/innodb-redo-badkey.test index ecdd97af2a6..d18fe5ba7d9 100644 --- a/mysql-test/suite/encryption/t/innodb-redo-badkey.test +++ b/mysql-test/suite/encryption/t/innodb-redo-badkey.test @@ -12,6 +12,8 @@ call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed f call mtr.add_suppression("InnoDB: Failed to read file '.*' at offset .*"); call mtr.add_suppression("InnoDB: Plugin initialization aborted"); call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); +# for innodb_checksum_algorithm=full_crc32 only +call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space="); -- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt -- source include/restart_mysqld.inc