Commit f0eb8f15 authored by Jan Lindström's avatar Jan Lindström

MDEV-12628: innodb.innodb_bug14147491 sporadically fails in buildbot due to wrong error number

Actual error number returned from the query depends what point
corrupted page is accessed, is it accessed when we read
one of the pages for result set or is it accessed during
background page read.
parent 1e227d88
...@@ -6,17 +6,12 @@ INSERT INTO t1 (b) VALUES ('corrupt me'); ...@@ -6,17 +6,12 @@ INSERT INTO t1 (b) VALUES ('corrupt me');
# Corrupt the table # Corrupt the table
Munged a string. Munged a string.
Munged a string. Munged a string.
# The below SELECT query will return that table is not # Now t1 is corrupted but we should not crash
# in engine because table is corrupted
SELECT * FROM t1; SELECT * FROM t1;
ERROR 42S02: Table 'test.t1' doesn't exist in engine Got one of the listed errors
INSERT INTO t1(b) VALUES('abcdef'); INSERT INTO t1(b) VALUES('abcdef');
ERROR 42S02: Table 'test.t1' doesn't exist in engine Got one of the listed errors
UPDATE t1 set b = 'deadbeef' where a = 1; UPDATE t1 set b = 'deadbeef' where a = 1;
ERROR 42S02: Table 'test.t1' doesn't exist in engine Got one of the listed errors
CHECK TABLE t1; # Cleanup, this must be possible
Table Op Msg_type Msg_text
test.t1 check Error Table 'test.t1' doesn't exist in engine
test.t1 check status Operation failed
# Cleanup
DROP TABLE t1; DROP TABLE t1;
...@@ -11,6 +11,8 @@ ...@@ -11,6 +11,8 @@
call mtr.add_suppression("InnoDB: Table `test`.`t1` is corrupted. Please drop the table and recreate."); call mtr.add_suppression("InnoDB: Table `test`.`t1` is corrupted. Please drop the table and recreate.");
call mtr.add_suppression("InnoDB: Cannot open table test/t1 from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue."); call mtr.add_suppression("InnoDB: Cannot open table test/t1 from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.");
call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed file read of tablespace test/t1 page \[page id: space=[0-9]+, page number=[0-9]+\]. You may have to recover from a backup."); call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed file read of tablespace test/t1 page \[page id: space=[0-9]+, page number=[0-9]+\]. You may have to recover from a backup.");
call mtr.add_suppression("InnoDB: We detected index corruption in an InnoDB type table.*");
call mtr.add_suppression("mysqld: Index for table 't1' is corrupt; try to repair it");
--enable_query_log --enable_query_log
--echo # Create and populate the table to be corrupted --echo # Create and populate the table to be corrupted
...@@ -63,18 +65,16 @@ EOF ...@@ -63,18 +65,16 @@ EOF
--source include/start_mysqld.inc --source include/start_mysqld.inc
--echo # The below SELECT query will return that table is not --echo # Now t1 is corrupted but we should not crash
--echo # in engine because table is corrupted
--error ER_NO_SUCH_TABLE_IN_ENGINE --error 1030,1712,1932
SELECT * FROM t1; SELECT * FROM t1;
--error ER_NO_SUCH_TABLE_IN_ENGINE --error 126,1030,1034,1712,1932
INSERT INTO t1(b) VALUES('abcdef'); INSERT INTO t1(b) VALUES('abcdef');
--error ER_NO_SUCH_TABLE_IN_ENGINE --error 1030,1712,1932
UPDATE t1 set b = 'deadbeef' where a = 1; UPDATE t1 set b = 'deadbeef' where a = 1;
CHECK TABLE t1; --echo # Cleanup, this must be possible
--echo # Cleanup
DROP TABLE t1; DROP TABLE t1;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment