diff --git a/mysql-test/suite/innodb/r/log_file_name_debug.result b/mysql-test/suite/innodb/r/log_file_name_debug.result index e82feef870c..e33ce36d1f2 100644 --- a/mysql-test/suite/innodb/r/log_file_name_debug.result +++ b/mysql-test/suite/innodb/r/log_file_name_debug.result @@ -5,4 +5,10 @@ SET GLOBAL DEBUG_DBUG='+d,fil_names_write_bogus'; CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; # Kill the server +SELECT * FROM t1; +ERROR 42000: Unknown storage engine 'InnoDB' +FOUND /InnoDB: Tablespace 4294967280 was not found at .*, but there were no modifications either/ in mysqld.1.err +SELECT * FROM t1; +ERROR 42000: Unknown storage engine 'InnoDB' +FOUND /srv_prepare_to_delete_redo_log_files: ib_log: MLOG_CHECKPOINT.* written/ in mysqld.1.err DROP TABLE t1; diff --git a/mysql-test/suite/innodb/r/log_file_size_checkpoint.result b/mysql-test/suite/innodb/r/log_file_size_checkpoint.result deleted file mode 100644 index 068b1368e1e..00000000000 --- a/mysql-test/suite/innodb/r/log_file_size_checkpoint.result +++ /dev/null @@ -1,4 +0,0 @@ -CREATE DATABASE logtest; -USE logtest; -# Kill and restart: --innodb-log-files-in-group=2 --innodb-log-file-size=4M --innodb-buffer-pool-size=50M -DROP DATABASE logtest; diff --git a/mysql-test/suite/innodb/t/log_file_name_debug.test b/mysql-test/suite/innodb/t/log_file_name_debug.test index 41d7ec2e53e..44012d38c8e 100644 --- a/mysql-test/suite/innodb/t/log_file_name_debug.test +++ b/mysql-test/suite/innodb/t/log_file_name_debug.test @@ -10,9 +10,15 @@ SET GLOBAL DEBUG_DBUG='+d,fil_names_write_bogus'; --disable_query_log +call mtr.add_suppression("InnoDB: Plugin initialization aborted"); +call mtr.add_suppression("Plugin 'InnoDB' init function returned error"); +call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); FLUSH TABLES; --enable_query_log +--let $n_logs=`SELECT if(@@innodb_log_files_in_group = 1, 2, 1)` +--let $resize= --innodb-log-files-in-group=$n_logs --innodb-log-file-size=4M + --source include/no_checkpoint_start.inc CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; @@ -20,12 +26,24 @@ CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB; --let CLEANUP_IF_CHECKPOINT=DROP TABLE t1; --source include/no_checkpoint_end.inc +--let $restart_parameters= --debug=d,innodb_log_abort_1 $resize --source include/start_mysqld.inc - -DROP TABLE t1; +--error ER_UNKNOWN_STORAGE_ENGINE +SELECT * FROM t1; --let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err ---let SEARCH_PATTERN = InnoDB: Tablespace 4294967280 was not found at .*, but there were no modifications either ---let SEARCH_ABORT = NOT FOUND --let SEARCH_RANGE = -50000 +--let SEARCH_PATTERN = InnoDB: Tablespace 4294967280 was not found at .*, but there were no modifications either --source include/search_pattern_in_file.inc + +--let $restart_parameters= --debug=d,innodb_log_abort_3,ib_log $resize +--source include/restart_mysqld.inc +--error ER_UNKNOWN_STORAGE_ENGINE +SELECT * FROM t1; +--let SEARCH_PATTERN= srv_prepare_to_delete_redo_log_files: ib_log: MLOG_CHECKPOINT.* written +--source include/search_pattern_in_file.inc + +--let $restart_parameters= +--source include/restart_mysqld.inc +DROP TABLE t1; + diff --git a/mysql-test/suite/innodb/t/log_file_size_checkpoint.test b/mysql-test/suite/innodb/t/log_file_size_checkpoint.test deleted file mode 100644 index 16b71bfd1f4..00000000000 --- a/mysql-test/suite/innodb/t/log_file_size_checkpoint.test +++ /dev/null @@ -1,27 +0,0 @@ ---source include/have_innodb.inc ---source include/not_embedded.inc ---source include/no_valgrind_without_big.inc - -CREATE DATABASE logtest; -USE logtest; -let $n=250; -let $t=veryLongTableNameToCreateMLOG_FILE_NAMErecords; - ---disable_query_log -let $i=$n; -while ($i) -{ ---eval CREATE TABLE $t$i(a INT PRIMARY KEY) ENGINE=InnoDB; -dec $i; -} - -# If we set above n to 500, this test case could fail easily, because -# the inndob buffer pool is too small, some of which would be occupied -# by the recv*. With n=250, this test case could sporadically fail too. -# So we have to set buffer pool size to 50M which should be enough for this -# test case. Once we fix the bug#22179133 and bug#22186325, we should use -# the default innodb buffer pool(or the smaller one). -let $restart_parameters = --innodb-log-files-in-group=2 --innodb-log-file-size=4M --innodb-buffer-pool-size=50M; ---source include/kill_and_restart_mysqld.inc - -DROP DATABASE logtest; diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 193003fb9a6..8afa90502d0 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -421,9 +421,11 @@ create_log_files( DBUG_EXECUTE_IF("innodb_log_abort_6", return(DB_ERROR);); } + DBUG_PRINT("ib_log", ("After innodb_log_abort_6")); ut_ad(!buf_pool_check_no_pending_io()); DBUG_EXECUTE_IF("innodb_log_abort_7", return(DB_ERROR);); + DBUG_PRINT("ib_log", ("After innodb_log_abort_7")); for (unsigned i = 0; i < srv_n_log_files; i++) { sprintf(logfilename + dirnamelen, @@ -437,6 +439,7 @@ create_log_files( } DBUG_EXECUTE_IF("innodb_log_abort_8", return(DB_ERROR);); + DBUG_PRINT("ib_log", ("After innodb_log_abort_8")); /* We did not create the first log file initially as ib_logfile0, so that crash recovery cannot find it until it @@ -445,7 +448,7 @@ create_log_files( fil_space_t* log_space = fil_space_create( "innodb_redo_log", SRV_LOG_SPACE_FIRST_ID, 0, FIL_TYPE_LOG, - NULL, /* No encryption yet */ + NULL, /* innodb_encrypt_log works at a different level */ true /* this is create */); ut_a(fil_validate()); ut_a(log_space != NULL); @@ -513,6 +516,7 @@ create_log_files_rename( fil_flush(SRV_LOG_SPACE_FIRST_ID); DBUG_EXECUTE_IF("innodb_log_abort_9", return(DB_ERROR);); + DBUG_PRINT("ib_log", ("After innodb_log_abort_9")); /* Close the log files, so that we can rename the first one. */ @@ -1348,6 +1352,8 @@ lsn_t srv_prepare_to_delete_redo_log_files( ulint n_files) { + DBUG_ENTER("srv_prepare_to_delete_redo_log_files"); + lsn_t flushed_lsn; ulint pending_io = 0; ulint count = 0; @@ -1356,7 +1362,8 @@ srv_prepare_to_delete_redo_log_files( /* Clean the buffer pool. */ buf_flush_sync_all_buf_pools(); - DBUG_EXECUTE_IF("innodb_log_abort_1", return(0);); + DBUG_EXECUTE_IF("innodb_log_abort_1", DBUG_RETURN(0);); + DBUG_PRINT("ib_log", ("After innodb_log_abort_1")); log_mutex_enter(); @@ -1426,7 +1433,7 @@ srv_prepare_to_delete_redo_log_files( } while (buf_pool_check_no_pending_io()); - return(flushed_lsn); + DBUG_RETURN(flushed_lsn); } /******************************************************************** @@ -2346,11 +2353,13 @@ files_checked: DBUG_EXECUTE_IF("innodb_log_abort_3", return(srv_init_abort(DB_ERROR));); + DBUG_PRINT("ib_log", ("After innodb_log_abort_3")); /* Stamp the LSN to the data files. */ err = fil_write_flushed_lsn(flushed_lsn); DBUG_EXECUTE_IF("innodb_log_abort_4", err = DB_ERROR;); + DBUG_PRINT("ib_log", ("After innodb_log_abort_4")); if (err != DB_SUCCESS) { return(srv_init_abort(err)); @@ -2362,6 +2371,7 @@ files_checked: DBUG_EXECUTE_IF("innodb_log_abort_5", return(srv_init_abort(DB_ERROR));); + DBUG_PRINT("ib_log", ("After innodb_log_abort_5")); /* Free the old log file space. */ log_group_close_all();