1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Adapt the test case for Oracle Bug#25385590

buf_chunk_not_freed(), logs_empty_and_mark_files_at_shutdown():
Relax debug assertions when innodb_force_recovery=6
implies innodb_read_only.
This commit is contained in:
Marko Mäkelä
2017-04-26 13:53:13 +03:00
parent 7223ec4ca7
commit 67e9c4cf6c
4 changed files with 236 additions and 3 deletions

View File

@ -0,0 +1,139 @@
# Not supported in embedded
--source include/not_embedded.inc
# This test case needs InnoDB.
-- source include/have_innodb.inc
--disable_query_log
call mtr.add_suppression("InnoDB: Failed to find tablespace for table .* in the cache. Attempting to load the tablespace with space id");
call mtr.add_suppression("InnoDB: Allocated tablespace ID \\d+ for test.t[12], old maximum was");
--enable_query_log
create table t1(f1 int not null, f2 int not null, index idx(f2))engine=innodb;
create table t2(f1 int not null, f2 int not null, index idx(f2))engine=innodb;
insert into t1 values(1, 2);
insert into t2 values(1, 2);
SET GLOBAL innodb_fast_shutdown = 0;
--echo # Restart the server with innodb_force_recovery as 4.
--let $restart_parameters= --innodb-force-recovery=4
--source include/restart_mysqld.inc
select * from t1;
--error ER_READ_ONLY_MODE
insert into t1 values(2, 3);
--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
alter table t1 add f3 int not null, algorithm=copy;
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t1 add f3 int not null, algorithm=inplace;
--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
drop index idx on t1;
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t1 drop index idx, algorithm=inplace;
--error ER_READ_ONLY_MODE
update t1 set f1=3 where f2=2;
--error ER_CANT_CREATE_TABLE
create table t3(f1 int not null)engine=innodb;
--error ER_BAD_TABLE_ERROR
drop table t3;
--error ER_ERROR_ON_RENAME
rename table t1 to t3;
--error ER_OPEN_AS_READONLY
truncate table t1;
drop table t1;
show tables;
--echo # Restart the server with innodb_force_recovery as 5.
--let $restart_parameters= --innodb-force-recovery=5
--source include/restart_mysqld.inc
select * from t2;
--error ER_READ_ONLY_MODE
insert into t2 values(2, 3);
--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
alter table t2 add f3 int not null, algorithm=copy;
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t2 add f3 int not null, algorithm=inplace;
--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
drop index idx on t2;
--error ER_READ_ONLY_MODE
update t2 set f1=3 where f2=2;
--error ER_CANT_CREATE_TABLE
create table t1(f1 int not null)engine=innodb;
--error ER_BAD_TABLE_ERROR
drop table t1;
--error ER_ERROR_ON_RENAME
rename table t2 to t3;
--error ER_OPEN_AS_READONLY
truncate table t2;
--error ER_OPEN_AS_READONLY
drop table t2;
show tables;
--echo # Restart the server with innodb_force_recovery as 6.
--let $restart_parameters= --innodb-force-recovery=6
--source include/restart_mysqld.inc
select * from t2;
--error ER_OPEN_AS_READONLY
insert into t2 values(2, 3);
--error ER_OPEN_AS_READONLY
alter table t2 add f3 int not null, algorithm=copy;
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t2 add f3 int not null, algorithm=inplace;
--error ER_OPEN_AS_READONLY
drop index idx on t2;
--error ER_OPEN_AS_READONLY
update t2 set f1=3 where f2=2;
--error ER_CANT_CREATE_TABLE
create table t1(f1 int not null)engine=innodb;
--error ER_BAD_TABLE_ERROR
drop table t1;
--error ER_ERROR_ON_RENAME
rename table t2 to t3;
--error ER_OPEN_AS_READONLY
truncate table t2;
--error ER_OPEN_AS_READONLY
drop table t2;
show tables;
--let $restart_parameters=
--source include/restart_mysqld.inc
drop table t2;
show tables;