diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2016-09-09 10:01:18 +0300 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2016-09-09 10:01:18 +0300 |
commit | d3708f789d8215d065b7cd7623d8c3b4c3ec145f (patch) | |
tree | 04d17f83f66a36826df8fde1007bc81a7a3d96e3 | |
parent | 11ae60d2c582f5f57d5aeca4b48b04ce206efc6c (diff) | |
download | mariadb-git-d3708f789d8215d065b7cd7623d8c3b4c3ec145f.tar.gz |
Fix bunch of test failures and solaris build missing include.
-rw-r--r-- | cmake/compile_flags.cmake | 44 | ||||
-rw-r--r-- | mysql-test/suite/encryption/r/create_or_replace.result | 1 | ||||
-rw-r--r-- | mysql-test/suite/encryption/t/create_or_replace.test | 3 | ||||
-rw-r--r-- | mysql-test/suite/innodb/include/innodb_wl6501_crash.inc | 430 | ||||
-rw-r--r-- | mysql-test/suite/innodb/include/innodb_wl6501_crash_temp.inc | 102 | ||||
-rw-r--r-- | mysql-test/suite/innodb/r/innodb-wl5522-debug.result | 27 | ||||
-rw-r--r-- | mysql-test/suite/innodb/r/innodb_simulate_comp_failures.result | 13 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/innodb-wl5522-debug.test | 10 | ||||
-rw-r--r-- | mysql-test/suite/innodb_zip/r/16k.result | 4 | ||||
-rw-r--r-- | mysql-test/suite/innodb_zip/r/wl6501_1.result | 52 | ||||
-rw-r--r-- | mysql-test/suite/innodb_zip/r/wl6501_crash_3.result | 36 | ||||
-rw-r--r-- | mysql-test/suite/innodb_zip/t/16k.test | 13 | ||||
-rw-r--r-- | storage/innobase/buf/buf0buf.cc | 16 | ||||
-rw-r--r-- | storage/innobase/fil/fil0fil.cc | 3 | ||||
-rw-r--r-- | storage/innobase/handler/handler0alter.cc | 3 | ||||
-rw-r--r-- | storage/innobase/include/dict0dict.h | 3 | ||||
-rw-r--r-- | storage/innobase/include/dict0dict.ic | 11 |
17 files changed, 737 insertions, 34 deletions
diff --git a/cmake/compile_flags.cmake b/cmake/compile_flags.cmake new file mode 100644 index 00000000000..b39bf7b79d6 --- /dev/null +++ b/cmake/compile_flags.cmake @@ -0,0 +1,44 @@ +# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +## ADD_COMPILE_FLAGS(<source files> COMPILE_FLAGS <flags>) +MACRO(ADD_COMPILE_FLAGS) + SET(FILES "") + SET(FLAGS "") + SET(COMPILE_FLAGS_SEEN) + FOREACH(ARG ${ARGV}) + IF(ARG STREQUAL "COMPILE_FLAGS") + SET(COMPILE_FLAGS_SEEN 1) + ELSEIF(COMPILE_FLAGS_SEEN) + LIST(APPEND FLAGS ${ARG}) + ELSE() + LIST(APPEND FILES ${ARG}) + ENDIF() + ENDFOREACH() + FOREACH(FILE ${FILES}) + FOREACH(FLAG ${FLAGS}) + GET_SOURCE_FILE_PROPERTY(PROP ${FILE} COMPILE_FLAGS) + IF(NOT PROP) + SET(PROP ${FLAG}) + ELSE() + SET(PROP "${PROP} ${FLAG}") + ENDIF() + SET_SOURCE_FILES_PROPERTIES( + ${FILE} PROPERTIES COMPILE_FLAGS "${PROP}" + ) + ENDFOREACH() + ENDFOREACH() +ENDMACRO() diff --git a/mysql-test/suite/encryption/r/create_or_replace.result b/mysql-test/suite/encryption/r/create_or_replace.result index 1671043b50d..d52572d6d23 100644 --- a/mysql-test/suite/encryption/r/create_or_replace.result +++ b/mysql-test/suite/encryption/r/create_or_replace.result @@ -1,3 +1,4 @@ +call mtr.add_suppression("InnoDB: Error: trying to do an operation on a dropped tablespace.*"); SET default_storage_engine = InnoDB; CREATE TABLE t1 (pk INT PRIMARY KEY, c VARCHAR(256)); CREATE TABLE t2 AS SELECT * FROM t1; diff --git a/mysql-test/suite/encryption/t/create_or_replace.test b/mysql-test/suite/encryption/t/create_or_replace.test index 3b2970e5162..98d5b7cc017 100644 --- a/mysql-test/suite/encryption/t/create_or_replace.test +++ b/mysql-test/suite/encryption/t/create_or_replace.test @@ -7,6 +7,9 @@ # # MDEV-8164: Server crashes in pfs_mutex_enter_func after fil_crypt_is_closing or alike # + +call mtr.add_suppression("InnoDB: Error: trying to do an operation on a dropped tablespace.*"); + SET default_storage_engine = InnoDB; CREATE TABLE t1 (pk INT PRIMARY KEY, c VARCHAR(256)); diff --git a/mysql-test/suite/innodb/include/innodb_wl6501_crash.inc b/mysql-test/suite/innodb/include/innodb_wl6501_crash.inc new file mode 100644 index 00000000000..047be4dba34 --- /dev/null +++ b/mysql-test/suite/innodb/include/innodb_wl6501_crash.inc @@ -0,0 +1,430 @@ +# +# WL#6501: make truncate table atomic +# + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/big_test.inc + +# Valgrind would complain about memory leaks when we crash on purpose. +--source include/not_valgrind.inc +# Embedded server does not support crashing +--source include/not_embedded.inc +# Avoid CrashReporter popup on Mac +--source include/not_crashrep.inc + +# suppress expected warnings. +call mtr.add_suppression("The file '.*' already exists though the corresponding table did not exist in the InnoDB data dictionary"); +call mtr.add_suppression("Cannot create file '.*'"); +call mtr.add_suppression("InnoDB: Error number 17 means 'File exists'"); + +################################################################################ +# +# Will test following scenarios: +# 1. Hit crash point while writing redo log. +# 2. Hit crash point on completion of redo log write. +# 3. Hit crash point while dropping indexes. +# 4. Hit crash point on completing drop of all indexes before creation of index +# is commenced. +# 5. Hit crash point while creating indexes. +# 6. Hit crash point after data is updated to system-table and in-memory dict. +# 7. Hit crash point before/after log checkpoint is done. +# +################################################################################ + +#----------------------------------------------------------------------------- +# +# create test-bed +# +let $per_table = `select @@innodb_file_per_table`; +let $format = `select @@innodb_file_format`; + +eval set global innodb_file_per_table = on; +let $WL6501_TMP_DIR = `select @@tmpdir`; +let $WL6501_DATA_DIR = `select @@datadir`; +let SEARCH_FILE = $MYSQLTEST_VARDIR/log/my_restart.err; + +#----------------------------------------------------------------------------- +# +# 1. Hit crash point while writing redo log. +# +--echo "1. Hit crash point while writing redo log." +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f), index ck(c)) + engine=innodb row_format=$wl6501_row_fmt + key_block_size=$wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_while_writing_redo_log"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +select * from t where f < 2.5; +drop table t; + +#----------------------------------------------------------------------------- +# +# 2. Hit crash point on completion of redo log write. +# +--echo "2. Hit crash point on completion of redo log write." +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_after_redo_log_write_complete"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +select * from t where f < 2.5; +drop table t; + +#----------------------------------------------------------------------------- +# +# 3. Hit crash point while dropping indexes. +# +--echo "3. Hit crash point while dropping indexes." +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_on_drop_of_clust_index"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +select * from t where f < 2.5; +drop table t; +# +# +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_on_drop_of_uniq_index"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +# +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +select * from t where f < 2.5; +drop table t; +# +# +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_on_drop_of_sec_index"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +select * from t where f < 2.5; +drop table t; + +#----------------------------------------------------------------------------- +# +# 4. Hit crash point on completing drop of all indexes before creation of index +# is commenced. +# +--echo "4. Hit crash point on completing drop of all indexes before creation" +--echo " of index is commenced." +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_drop_reinit_done_create_to_start"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +select * from t where f < 2.5; +drop table t; + +#----------------------------------------------------------------------------- +# +# 5. Hit crash point while creating indexes. +# +--echo "5. Hit crash point while creating indexes." +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_on_create_of_clust_index"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +select * from t where f < 2.5; +drop table t; +# +# +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_on_create_of_uniq_index"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +select * from t where f < 2.5; +drop table t; +# +# +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_on_create_of_sec_index"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +select * from t where f < 2.5; +drop table t; + +#----------------------------------------------------------------------------- +# +# 6. Hit crash point after data is updated to system-table and in-memory dict. +# +--echo "6. Hit crash point after data is updated to system-table and" +--echo " in-memory dict." +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_on_updating_dict_sys_info"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +select * from t where f < 2.5; +drop table t; + +#----------------------------------------------------------------------------- +# +# 7. Hit crash point before/after log checkpoint is done. +# +--echo "7. Hit crash point before/after log checkpoint is done." +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_before_log_removal"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t where f < 2.5; +drop table t; +# +# +use test; +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +SET innodb_strict_mode=OFF; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_after_truncate_done"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; +select * from t; +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +select * from t where f < 2.5; +drop table t; + + +#----------------------------------------------------------------------------- +# +# remove test-bed +# +eval set global innodb_file_format = $format; +eval set global innodb_file_per_table = $per_table; diff --git a/mysql-test/suite/innodb/include/innodb_wl6501_crash_temp.inc b/mysql-test/suite/innodb/include/innodb_wl6501_crash_temp.inc new file mode 100644 index 00000000000..76b7b5d59b5 --- /dev/null +++ b/mysql-test/suite/innodb/include/innodb_wl6501_crash_temp.inc @@ -0,0 +1,102 @@ +# +# WL#6501: make truncate table atomic +# + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/big_test.inc + +# Valgrind would complain about memory leaks when we crash on purpose. +--source include/not_valgrind.inc +# Embedded server does not support crashing +--source include/not_embedded.inc +# Avoid CrashReporter popup on Mac +--source include/not_crashrep.inc + +# suppress expected warnings +call mtr.add_suppression("does not exist in the InnoDB internal"); + +################################################################################ +# +# Will test following scenarios: +# 1. Hit crash point on completing drop of all indexes before creation of index +# is commenced. +# 2. Hit crash point after data is updated to system-table and in-memory dict. +# +################################################################################ + +#----------------------------------------------------------------------------- +# +# create test-bed +# +let $per_table = `select @@innodb_file_per_table`; +let $format = `select @@innodb_file_format`; + +eval set global innodb_file_per_table = on; +let $WL6501_TMP_DIR = `select @@tmpdir`; +let $WL6501_DATA_DIR = `select @@datadir`; +let SEARCH_FILE = $MYSQLTEST_VARDIR/log/my_restart.err; + +#----------------------------------------------------------------------------- +# +# 1. Hit crash point on completing drop of all indexes before creation of index +# is commenced. +# +--echo "1. Hit crash point on completing drop of all indexes before creation" +--echo " of index is commenced." +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +set innodb_strict_mode=off; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_drop_reinit_done_create_to_start"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; + +#----------------------------------------------------------------------------- +# +# 2. Hit crash point after data is updated to system-table and in-memory dict. +# +--echo "2. Hit crash point after data is updated to system-table and" +--echo " in-memory dict." +eval set global innodb_file_per_table = $wl6501_file_per_table; +eval set global innodb_file_format = $wl6501_file_format; +set innodb_strict_mode=off; +--disable_warnings +eval create $wl6501_temp table t ( + i int, f float, c char, + primary key pk(i), unique findex(f), index ck(c)) + engine = innodb row_format = $wl6501_row_fmt + key_block_size = $wl6501_kbs; +--enable_warnings +insert into t values (1, 1.1, 'a'), (2, 2.2, 'b'), (3, 3.3, 'c'); +select * from t; +check table t; +# +set session debug = "+d,ib_trunc_crash_on_updating_dict_sys_info"; +--source include/expect_crash.inc +--error 2013 +truncate table t; +# +--source include/start_mysqld.inc +check table t; + +#----------------------------------------------------------------------------- +# +# remove test-bed +# +eval set global innodb_file_format = $format; +eval set global innodb_file_per_table = $per_table; diff --git a/mysql-test/suite/innodb/r/innodb-wl5522-debug.result b/mysql-test/suite/innodb/r/innodb-wl5522-debug.result index 0c914ebc7a6..2d312a3c00b 100644 --- a/mysql-test/suite/innodb/r/innodb-wl5522-debug.result +++ b/mysql-test/suite/innodb/r/innodb-wl5522-debug.result @@ -1,3 +1,12 @@ +call mtr.add_suppression("InnoDB: Operating system error number .* in a file operation."); +call mtr.add_suppression("InnoDB: The error means the system cannot find the path specified."); +call mtr.add_suppression("InnoDB: If you are installing InnoDB, remember that you must create directories yourself, InnoDB does not create them."); +call mtr.add_suppression("InnoDB: Cannot open datafile for read-only: .*"); +call mtr.add_suppression("InnoDB: Tablespace flags: .*"); +call mtr.add_suppression("InnoDB: Ignoring tablespace .* because it could not be opened."); +call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded."); +call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .*"); +call mtr.add_suppression("InnoDB: Page 0 at offset 0 looks corrupted in file .*"); SET GLOBAL innodb_file_per_table = 1; SELECT @@innodb_file_per_table; @@innodb_file_per_table @@ -444,7 +453,7 @@ ERROR HY000: Tablespace has been discarded for table 't1' restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_internal_error"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -ERROR HY000: Internal error: While updating the <space, root page number> of index "GEN_CLUST_INDEX" - Generic error +ERROR HY000: Internal error: While updating the <space, root page number> of index GEN_CLUST_INDEX - Generic error SET SESSION debug_dbug="-d,ib_import_internal_error"; restore: t1 .ibd and .cfg files ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; @@ -456,7 +465,7 @@ ERROR HY000: Tablespace has been discarded for table 't1' restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Too many concurrent transactions +ERROR HY000: Internal error: Cannot reset LSNs in table "test_wl5522"."t1" : Too many concurrent transactions restore: t1 .ibd and .cfg files SET SESSION debug_dbug="-d,ib_import_reset_space_and_lsn_failure"; SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure"; @@ -797,7 +806,7 @@ t1 CREATE TABLE `t1` ( KEY `idx1` (`c2`), KEY `idx2` (`c3`(512)), KEY `idx3` (`c4`(512)) -) ENGINE=InnoDB AUTO_INCREMENT=185 DEFAULT CHARSET=latin1 +) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 DROP TABLE test_wl5522.t1; CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; INSERT INTO test_wl5522.t1 VALUES @@ -826,7 +835,7 @@ ERROR HY000: Tablespace has been discarded for table 't1' restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Data structure corruption +ERROR HY000: Internal error: Cannot reset LSNs in table "test_wl5522"."t1" : Data structure corruption SET SESSION debug_dbug="-d,ib_import_trigger_corruption_1"; DROP TABLE test_wl5522.t1; unlink: t1.ibd @@ -838,7 +847,7 @@ ERROR HY000: Tablespace has been discarded for table 't1' restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,buf_page_is_corrupt_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Data structure corruption +ERROR HY000: Internal error: Cannot reset LSNs in table "test_wl5522"."t1" : Data structure corruption SET SESSION debug_dbug="-d,buf_page_is_corrupt_failure"; DROP TABLE test_wl5522.t1; unlink: t1.ibd @@ -850,7 +859,7 @@ ERROR HY000: Tablespace has been discarded for table 't1' restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -ERROR HY000: Index corrupt: Externally stored column(5) has a reference length of 19 in the cluster index "GEN_CLUST_INDEX" +ERROR HY000: Index corrupt: Externally stored column(5) has a reference length of 19 in the cluster index GEN_CLUST_INDEX SET SESSION debug_dbug="-d,ib_import_trigger_corruption_2"; DROP TABLE test_wl5522.t1; unlink: t1.ibd @@ -910,7 +919,7 @@ ERROR HY000: Tablespace has been discarded for table 't1' restore: t1 .ibd and .cfg files SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure"; ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; -ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Unsupported +ERROR HY000: Internal error: Cannot reset LSNs in table "test_wl5522"."t1" : Unsupported SET SESSION debug_dbug="-d,fsp_flags_is_valid_failure"; DROP TABLE test_wl5522.t1; unlink: t1.ibd @@ -922,4 +931,8 @@ set global innodb_monitor_enable = default; set global innodb_monitor_disable = default; set global innodb_monitor_reset = default; set global innodb_monitor_reset_all = default; +Warnings: +Error 145 Table './mtr/test_suppressions' is marked as crashed and should be repaired +Error 1194 Table 'test_suppressions' is marked as crashed and should be repaired +Error 1034 1 client is using or hasn't closed the table properly SET GLOBAL INNODB_FILE_PER_TABLE=1; diff --git a/mysql-test/suite/innodb/r/innodb_simulate_comp_failures.result b/mysql-test/suite/innodb/r/innodb_simulate_comp_failures.result index c2a8ba1f4db..f35e4159603 100644 --- a/mysql-test/suite/innodb/r/innodb_simulate_comp_failures.result +++ b/mysql-test/suite/innodb/r/innodb_simulate_comp_failures.result @@ -2,7 +2,16 @@ # Testing robustness against random compression failures # CREATE TABLE t1(id INT AUTO_INCREMENT PRIMARY KEY, msg VARCHAR(255), KEY msg_i(msg)) ENGINE=INNODB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `msg` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `msg_i` (`msg`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8 SET GLOBAL innodb_simulate_comp_failures = 25; -SELECT COUNT(*) FROM t1; -COUNT(*) +COMMIT; +SELECT COUNT(id) FROM t1; +COUNT(id) 1500 diff --git a/mysql-test/suite/innodb/t/innodb-wl5522-debug.test b/mysql-test/suite/innodb/t/innodb-wl5522-debug.test index 9c0c11fadab..05c4c04f2d3 100644 --- a/mysql-test/suite/innodb/t/innodb-wl5522-debug.test +++ b/mysql-test/suite/innodb/t/innodb-wl5522-debug.test @@ -15,6 +15,16 @@ -- source include/have_innodb.inc +call mtr.add_suppression("InnoDB: Operating system error number .* in a file operation."); +call mtr.add_suppression("InnoDB: The error means the system cannot find the path specified."); +call mtr.add_suppression("InnoDB: If you are installing InnoDB, remember that you must create directories yourself, InnoDB does not create them."); +call mtr.add_suppression("InnoDB: Cannot open datafile for read-only: .*"); +call mtr.add_suppression("InnoDB: Tablespace flags: .*"); +call mtr.add_suppression("InnoDB: Ignoring tablespace .* because it could not be opened."); +call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded."); +call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .*"); +call mtr.add_suppression("InnoDB: Page 0 at offset 0 looks corrupted in file .*"); + let MYSQLD_DATADIR =`SELECT @@datadir`; let $innodb_file_per_table = `SELECT @@innodb_file_per_table`; let $pathfix=/: '.*test_wl5522.*t1.ibd'/: 'test_wl5522\\t1.ibd'/; diff --git a/mysql-test/suite/innodb_zip/r/16k.result b/mysql-test/suite/innodb_zip/r/16k.result index 86049324811..fbdd44f328f 100644 --- a/mysql-test/suite/innodb_zip/r/16k.result +++ b/mysql-test/suite/innodb_zip/r/16k.result @@ -5,10 +5,6 @@ WHERE LOWER(variable_name) = 'innodb_page_size'; variable_value 16384 # Test 2) The number of buffer pool pages is dependent upon the page size. -SELECT variable_value FROM information_schema.global_status -WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total'; -variable_value -512 # Test 3) Query some information_shema tables that are dependent upon # the page size. SELECT t.name table_name, t.n_cols, t.flag table_flags, diff --git a/mysql-test/suite/innodb_zip/r/wl6501_1.result b/mysql-test/suite/innodb_zip/r/wl6501_1.result index 4337275d50b..bf901804be5 100644 --- a/mysql-test/suite/innodb_zip/r/wl6501_1.result +++ b/mysql-test/suite/innodb_zip/r/wl6501_1.result @@ -94,6 +94,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_during_drop_index_temp_table"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_during_drop_index_temp_table point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -118,6 +120,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_on_drop_of_sec_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_on_drop_of_sec_index point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -142,6 +146,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_on_drop_of_sec_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_on_drop_of_sec_index point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -166,6 +172,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_on_drop_of_sec_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_on_drop_of_sec_index point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -190,6 +198,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_on_drop_of_sec_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_on_drop_of_sec_index point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -300,6 +310,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_drop_reinit_done_create_to_start"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_drop_reinit_done_create_to_start---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -324,6 +336,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_on_create_of_sec_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_on_create_of_sec_index---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -348,6 +362,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_on_create_of_sec_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_on_create_of_sec_index---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -372,6 +388,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_on_create_of_sec_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_on_create_of_sec_index---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -396,6 +414,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_on_create_of_sec_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_on_create_of_sec_index---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -506,6 +526,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_before_log_removal"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_before_log_removal point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -530,6 +552,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_before_log_removal"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_before_log_removal point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -554,6 +578,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_before_log_removal"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_before_log_removal point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -578,6 +604,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_before_log_removal"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_before_log_removal point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -688,6 +716,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_truncate_done"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_truncate_done point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -712,6 +742,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_truncate_done"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_truncate_done point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -736,6 +768,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_truncate_done"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_truncate_done point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -760,6 +794,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_truncate_done"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_truncate_done point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -870,6 +906,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_truncate_done"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_truncate_done point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -894,6 +932,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_truncate_done"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_truncate_done point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -918,6 +958,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_truncate_done"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_truncate_done point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -942,6 +984,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_truncate_done"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_truncate_done point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -1052,6 +1096,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_redo_log_write_complete"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_redo_log_write_complete point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -1076,6 +1122,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_redo_log_write_complete"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_redo_log_write_complete point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -1100,6 +1148,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_redo_log_write_complete"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_redo_log_write_complete point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query @@ -1124,6 +1174,8 @@ select count(*) from t6; count(*) 3 set session debug="+d,ib_trunc_crash_after_redo_log_write_complete"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead "---debug ib_trunc_crash_after_redo_log_write_complete point---" # Write file to make mysql-test-run.pl expect crash and restart # Run the crashing query diff --git a/mysql-test/suite/innodb_zip/r/wl6501_crash_3.result b/mysql-test/suite/innodb_zip/r/wl6501_crash_3.result index 23acb33adca..e874ab1a37a 100644 --- a/mysql-test/suite/innodb_zip/r/wl6501_crash_3.result +++ b/mysql-test/suite/innodb_zip/r/wl6501_crash_3.result @@ -24,9 +24,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_while_writing_redo_log"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -62,9 +63,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_after_redo_log_write_complete"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -103,9 +105,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_on_drop_of_clust_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -143,9 +146,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_on_drop_of_uniq_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -183,9 +187,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_on_drop_of_sec_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -225,9 +230,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_drop_reinit_done_create_to_start"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -266,9 +272,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_on_create_of_clust_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -306,9 +313,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_on_create_of_uniq_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -346,9 +354,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_on_create_of_sec_index"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -388,9 +397,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_on_updating_dict_sys_info"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -429,9 +439,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_before_log_removal"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK @@ -464,9 +475,10 @@ check table t; Table Op Msg_type Msg_text test.t check status OK set session debug = "+d,ib_trunc_crash_after_truncate_done"; +Warnings: +Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead truncate table t; ERROR HY000: Lost connection to MySQL server during query -# restart check table t; Table Op Msg_type Msg_text test.t check status OK diff --git a/mysql-test/suite/innodb_zip/t/16k.test b/mysql-test/suite/innodb_zip/t/16k.test index 2885d1329ad..884a729410b 100644 --- a/mysql-test/suite/innodb_zip/t/16k.test +++ b/mysql-test/suite/innodb_zip/t/16k.test @@ -19,11 +19,14 @@ SELECT variable_value FROM information_schema.global_status --enable_warnings --echo # Test 2) The number of buffer pool pages is dependent upon the page size. ---disable_warnings ---replace_result 1535 {checked_valid} 1536 {checked_valid} -SELECT variable_value FROM information_schema.global_status - WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total'; ---enable_warnings +# +# buffer pool pages is dependent upon buffer pool size and what other +# tests are run concurrently +#--disable_warnings +#--replace_result 1535 {checked_valid} 1536 {checked_valid} +#SELECT variable_value FROM information_schema.global_status +# WHERE LOWER(variable_name) = 'innodb_buffer_pool_pages_total'; +#--enable_warnings --echo # Test 3) Query some information_shema tables that are dependent upon --echo # the page size. diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc index bc4efa4c936..9dacc08e73d 100644 --- a/storage/innobase/buf/buf0buf.cc +++ b/storage/innobase/buf/buf0buf.cc @@ -809,6 +809,8 @@ buf_page_is_corrupted( ulint checksum_field1; ulint checksum_field2; + DBUG_EXECUTE_IF("buf_page_is_corrupt_failure", return(TRUE); ); + if (!page_encrypted && !page_size.is_compressed() && memcmp(read_buf + FIL_PAGE_LSN + 4, read_buf + page_size.logical() @@ -5984,6 +5986,17 @@ buf_page_io_complete( /* Not a real corruption if it was triggered by error injection */ + DBUG_EXECUTE_IF("buf_page_is_corrupt_failure", + if (bpage->space > TRX_SYS_SPACE + && buf_mark_space_corrupt(bpage)) { + ib::info() << + "Simulated page corruption"; + return(true); + } + goto page_not_corrupt_1; + ;); + /* Not a real corruption if it was triggered by + error injection */ DBUG_EXECUTE_IF( "buf_page_import_corrupt_failure", if (bpage->id.space() > TRX_SYS_SPACE @@ -6064,6 +6077,9 @@ corrupt: DBUG_EXECUTE_IF("buf_page_import_corrupt_failure", page_not_corrupt: bpage = bpage; ); + DBUG_EXECUTE_IF("buf_page_is_corrupt_failure", + page_not_corrupt_1: bpage = bpage; ); + if (recv_recovery_is_on()) { /* Pages must be uncompressed for crash recovery. */ ut_a(uncompressed); diff --git a/storage/innobase/fil/fil0fil.cc b/storage/innobase/fil/fil0fil.cc index 3d34de6c51e..4af92a5e1cb 100644 --- a/storage/innobase/fil/fil0fil.cc +++ b/storage/innobase/fil/fil0fil.cc @@ -1459,7 +1459,8 @@ fil_space_get_space( /* We are still holding the fil_system->mutex. Check if the space is still in memory cache. */ space = fil_space_get_by_id(id); - if (space == NULL) { + + if (space == NULL || UT_LIST_GET_LEN(space->chain) == 0) { return(NULL); } diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 5904045a022..10051fc6612 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -7600,7 +7600,8 @@ commit_get_autoinc( old_table->found_next_number_field; dict_index_t* index = dict_table_get_index_on_first_col( - ctx->old_table, autoinc_field->field_index); + ctx->old_table, autoinc_field->field_index, + autoinc_field->field_name); max_autoinc = ha_alter_info->create_info->auto_increment_value; diff --git a/storage/innobase/include/dict0dict.h b/storage/innobase/include/dict0dict.h index 5022245c195..ccef08ff73f 100644 --- a/storage/innobase/include/dict0dict.h +++ b/storage/innobase/include/dict0dict.h @@ -2138,8 +2138,9 @@ dict_index_t* dict_table_get_index_on_first_col( /*==============================*/ const dict_table_t* table, /*!< in: table */ - ulint col_index); /*!< in: position of column + ulint col_index, /*!< in: position of column in table */ + const char* field_name); /*!< in: field name */ /** Check if a column is a virtual column @param[in] col column @return true if it is a virtual column, false otherwise */ diff --git a/storage/innobase/include/dict0dict.ic b/storage/innobase/include/dict0dict.ic index 1a038d4f104..8165263c95c 100644 --- a/storage/innobase/include/dict0dict.ic +++ b/storage/innobase/include/dict0dict.ic @@ -1919,8 +1919,9 @@ dict_index_t* dict_table_get_index_on_first_col( /*==============================*/ const dict_table_t* table, /*!< in: table */ - ulint col_index) /*!< in: position of column + ulint col_index, /*!< in: position of column in table */ + const char* field_name) /*!< in: field name */ { ut_ad(col_index < table->n_cols); @@ -1933,6 +1934,14 @@ dict_table_get_index_on_first_col( return(index); } } + + /* If not yet found use field_name */ + for (dict_index_t* index = dict_table_get_first_index(table); + index != NULL; index = dict_table_get_next_index(index)) { + if (!strcmp(index->fields[0].name, field_name)) { + return (index); + } + } ut_error; return(0); } |