mirror of
https://github.com/MariaDB/server.git
synced 2025-09-03 20:43:11 +03:00
A message used to say "failed to read or decrypt"
but the "or decrypt" part was removed in
commit 0b47c126e3
without adjusting rarely needed error message suppressions in some
encryption tests.
Let us improve the error message so that it mentions the file name,
and adjust all error message suppressions in tests.
Thanks to Oleksandr Byelkin for noticing one test failure.
59 lines
2.4 KiB
Plaintext
59 lines
2.4 KiB
Plaintext
call mtr.add_suppression("InnoDB: Table `test`\\.`t1` (has an unreadable root page|is corrupted)");
|
|
call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file '.*test.t[123]\\.ibd' cannot be decrypted\\.");
|
|
call mtr.add_suppression("InnoDB: Recovery failed to read page");
|
|
call mtr.add_suppression("InnoDB: Encrypted page \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\] in file .*test.t[12].ibd looks corrupted; key_version=1");
|
|
call mtr.add_suppression("InnoDB: Table `test`\\.`t1` is corrupted");
|
|
# Start server with keys2.txt
|
|
# restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
|
CREATE TABLE t1(a int not null primary key auto_increment, b varchar(128)) engine=innodb ENCRYPTED=YES ENCRYPTION_KEY_ID=19;
|
|
CREATE TABLE t2(a int not null primary key auto_increment, b varchar(128)) engine=innodb ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
|
|
CREATE TABLE t3(a int not null primary key auto_increment, b varchar(128)) engine=innodb ENCRYPTED=NO;
|
|
INSERT INTO t1(b) VALUES ('thisissecredmessage');
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t1(b) SELECT b FROM t1;
|
|
INSERT INTO t2 SELECT * FROM t1;
|
|
INSERT INTO t3 SELECT * FROM t1;
|
|
|
|
# Restart server with keys3.txt
|
|
# restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys3.txt
|
|
set global innodb_encryption_rotate_key_age = 1;
|
|
use test;
|
|
CREATE TABLE t4(a int not null primary key auto_increment, b varchar(128)) engine=innodb ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
|
|
SELECT SLEEP(5);
|
|
SLEEP(5)
|
|
0
|
|
SELECT COUNT(1) FROM t3;
|
|
COUNT(1)
|
|
2048
|
|
SELECT COUNT(1) FROM t2;
|
|
COUNT(1)
|
|
2048
|
|
SELECT COUNT(1) FROM t2,t1 where t2.a = t1.a;
|
|
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
|
SELECT COUNT(1) FROM t1 where b = 'ab';
|
|
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
|
SELECT COUNT(1) FROM t1;
|
|
ERROR 42S02: Table 'test.t1' doesn't exist in engine
|
|
|
|
# Start server with keys2.txt
|
|
# restart: --file-key-management-filename=MYSQL_TEST_DIR/std_data/keys2.txt
|
|
SELECT COUNT(1) FROM t1;
|
|
COUNT(1)
|
|
2048
|
|
SELECT COUNT(1) FROM t2;
|
|
COUNT(1)
|
|
2048
|
|
SELECT COUNT(1) FROM t3;
|
|
COUNT(1)
|
|
2048
|
|
DROP TABLE t1, t2, t3;
|