blob: cc5e6b36ac3d1317b783e54d985d6153f75e49df (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
-- source include/have_innodb.inc
-- source include/have_file_key_management_plugin.inc
# embedded does not support restart
-- source include/not_embedded.inc
-- source include/not_valgrind.inc
# Avoid CrashReporter popup on Mac
-- source include/not_crashrep.inc
-- source include/not_windows.inc
#
# MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one encrypted
# table exists and encryption service is not available.
#
call mtr.add_suppression("Plugin 'file_key_management' init function returned error");
call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed.*");
call mtr.add_suppression("Plugin 'file_key_management' registration.*failed");
call mtr.add_suppression("InnoDB: Block in space_id .* in file test/.* encrypted");
call mtr.add_suppression("InnoDB: However key management plugin or used key_id .* is not found or used encryption algorithm or method does not match.");
call mtr.add_suppression("InnoDB: Marking tablespace as missing. You may drop this table or install correct key management plugin and key file.");
call mtr.add_suppression(".*InnoDB: Cannot open table test/.* from the internal data dictionary of InnoDB though the .frm file for the table exists. See .* for how you can resolve the problem.");
call mtr.add_suppression("InnoDB: .ibd file is missing for table test/.*");
call mtr.add_suppression("mysqld: File .*");
call mtr.add_suppression("InnoDB: Tablespace id .* is encrypted but encryption service or used key_id .* is not available. Can't continue opening tablespace.");
call mtr.add_suppression("InnoDB: InnoDB: Page may be an index page where index id is .*");
--echo
--echo # Start server with keys2.txt
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
-- source include/restart_mysqld.inc
CREATE TABLE t1 (c VARCHAR(8)) ENGINE=InnoDB ENCRYPTED=YES ENCRYPTION_KEY_ID=2;
INSERT INTO t1 VALUES ('foobar');
ALTER TABLE t1 ADD COLUMN c2 INT;
INSERT INTO t1 VALUES ('foobar',2);
SELECT * FROM t1;
TRUNCATE TABLE t1;
SELECT * FROM t1;
INSERT INTO t1 VALUES ('foobar',1);
INSERT INTO t1 VALUES ('foobar',2);
FLUSH TABLE WITH READ LOCK;
SELECT * FROM t1;
--echo
--echo # Restart server with keysbad3.txt
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keysbad3.txt
-- source include/restart_mysqld.inc
--error ER_GET_ERRMSG
SELECT * FROM t1;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keysbad3.txt
-- source include/restart_mysqld.inc
--replace_regex /tablespace [0-9]*/tablespace /
DROP TABLE t1;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
#
# MDEV-8591: Database page corruption on disk or a failed space, Assertion failure in file buf0buf.cc
# line 2856 on querying a table using wrong default encryption key
#
--echo # Start server with keys.txt
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys.txt
-- source include/restart_mysqld.inc
CREATE TABLE t2 (c VARCHAR(8), id int not null primary key, b int, key(b)) ENGINE=InnoDB ENCRYPTED=YES;
INSERT INTO t2 VALUES ('foobar',1,2);
--echo
--echo # Restart server with keys2.txt
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys2.txt
-- source include/restart_mysqld.inc
--error ER_GET_ERRMSG
SELECT * FROM t2;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
--error ER_GET_ERRMSG
SELECT * FROM t2 where id = 1;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
--error ER_GET_ERRMSG
SELECT * FROM t2 where b = 1;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
--error ER_GET_ERRMSG
INSERT INTO t2 VALUES ('tmp',3,3);
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
--error ER_GET_ERRMSG
DELETE FROM t2 where b = 3;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
--error ER_GET_ERRMSG
DELETE FROM t2 where id = 3;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
--error ER_GET_ERRMSG
UPDATE t2 set b = b +1;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
OPTIMIZE TABLE t2;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
--error ER_GET_ERRMSG
ALTER TABLE t2 ADD COLUMN c INT;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
ANALYZE TABLE t2;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
--error ER_GET_ERRMSG
TRUNCATE TABLE t2;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
--replace_regex /.*tablespace [0-9]*//
--error ER_GET_ERRMSG
DROP TABLE t2;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
--echo
--echo # Restart server with keys.txt
-- let $restart_parameters=--file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys.txt
-- source include/restart_mysqld.inc
--replace_regex /.*tablespace [0-9]*//
DROP TABLE t2;
--replace_regex /tablespace [0-9]*/tablespace /
SHOW WARNINGS;
|