1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-12 08:01:43 +03:00
Files
mariadb/mysql-test/suite/innodb/t/log_file.test

262 lines
9.1 KiB
Plaintext

--echo # Testcase for the following bugs
--echo # Bug#16691130 - ASSERT WHEN INNODB_LOG_GROUP_HOME_DIR DOES NOT EXIST
--echo # Bug#16418661 - CHANGING NAME IN FOR INNODB_DATA_FILE_PATH SHOULD NOT SUCCEED WITH LOG FILES
--source include/have_innodb.inc
let bugdir= $MYSQLTEST_VARDIR/tmp/log_file;
--mkdir $bugdir
--let SEARCH_RANGE = -50000
--let SEARCH_FILE = $bugdir/my_restart.err
--let SEARCH_ABORT=NOT FOUND
--let $args=--defaults-file=$bugdir/my.cnf --loose-console > $SEARCH_FILE 2>&1
--echo # Write tmp/log_file/my.cnf
perl;
die unless open IN, "<", "$ENV{MYSQLTEST_VARDIR}/my.cnf";
my $found;
while (<IN>) { $found=$1 if /^(lc-messages-dir=.*)/ }
close IN;
die unless defined $found;
die unless open OUT, ">", "$ENV{bugdir}/my.cnf";
print OUT "[mysqld]
$found
innodb_data_home_dir = $ENV{bugdir}
datadir = $ENV{bugdir}
secure_file_priv=
skip_aria
#core_file # MDEV-11689 FIXME: add this back, and remove all ,134 below
innodb_data_file_path = ibdata1:10M;ibdata2:10M:autoextend
innodb_undo_logs = 20
innodb_undo_tablespaces = 3
innodb_log_files_in_group = 3
";
close(OUT);
EOF
--echo # Start mysqld without the possibility to create innodb_undo_tablespaces
--mkdir $bugdir/undo002
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=\[ERROR\] InnoDB: Could not create undo tablespace '.*undo002';
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
--echo # Remove undo001,undo002,ibdata1,ibdata2,ib_logfile1,ib_logfile2,ib_logfile101
--remove_file $bugdir/undo001
--rmdir $bugdir/undo002
--remove_file $bugdir/ibdata1
--remove_file $bugdir/ibdata2
--remove_file $bugdir/ib_logfile1
--remove_file $bugdir/ib_logfile2
--remove_file $bugdir/ib_logfile101
--list_files $bugdir
--echo # Start mysqld with non existent innodb_log_group_home_dir
--error 1,134
--exec $MYSQLD $args --innodb_log_group_home_dir=/path/to/non-existent/
let SEARCH_PATTERN=File .path.to.non-existent.*ib_logfile101: 'create' returned OS error \d+;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
--echo # Remove ibdata1 & ibdata2
--remove_file $bugdir/ibdata1
--remove_file $bugdir/ibdata2
--list_files $bugdir
# Innodb creates system tablespaces according to my.cnf and aborts
# complaining about mysql.* tables. This is sufficient for testing
# missing tablespaces.
--echo # Start mysqld to create tablespaces according to my.cnf
--error 2,134
--exec $MYSQLD $args --skip-grant-tables --innodb-unknown-parameter
let SEARCH_PATTERN=unknown option '--innodb-unknown-parameter';
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
--echo # Backup tmp/logfile/*
--copy_file $bugdir/ibdata1 $bugdir/bak_ibdata1
--copy_file $bugdir/ibdata2 $bugdir/bak_ibdata2
--copy_file $bugdir/ib_logfile0 $bugdir/bak_ib_logfile0
--copy_file $bugdir/ib_logfile1 $bugdir/bak_ib_logfile1
--copy_file $bugdir/ib_logfile2 $bugdir/bak_ib_logfile2
--copy_file $bugdir/undo001 $bugdir/bak_undo001
--copy_file $bugdir/undo002 $bugdir/bak_undo002
--copy_file $bugdir/undo003 $bugdir/bak_undo003
--echo # 1. With ibdata2, Without ibdata1
--remove_file $bugdir/ibdata1
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=The innodb_system data file 'ibdata1' was not found but one of the other data files 'ibdata2' exists;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
# clean up & Restore
--source ../include/log_file_cleanup.inc
--echo # 2. With ibdata1, without ibdata2
--remove_file $bugdir/ibdata2
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=Tablespace size stored in header is \d+ pages, but;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
# clean up & Restore
--source ../include/log_file_cleanup.inc
--echo # 3. Without ibdata1 & ibdata2
--remove_file $bugdir/ibdata1
--remove_file $bugdir/ibdata2
--list_files $bugdir
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=undo tablespace .*undo001.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
# clean up & Restore
--source ../include/log_file_cleanup.inc
--echo # 4. Without ibdata*, ib_logfile* and with undo00*
--remove_files_wildcard $bugdir ibdata*
--remove_files_wildcard $bugdir ib_logfile*
--list_files $bugdir
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=undo tablespace .*undo001.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
# clean up & Restore
--source ../include/log_file_cleanup.inc
--echo # 5. Without ibdata*,ib_logfile* files & Without undo002
--remove_files_wildcard $bugdir ibdata*
--remove_files_wildcard $bugdir ib_logfile*
--remove_file $bugdir/undo002
--list_files $bugdir
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=undo tablespace .*undo001.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
# clean up & Restore
--source ../include/log_file_cleanup.inc
--echo # 6. Without ibdata*,ib_logfile* files & Without undo001, undo002
# and with undo003
--remove_files_wildcard $bugdir ibdata*
--remove_files_wildcard $bugdir ib_logfile*
--remove_file $bugdir/undo001
--remove_file $bugdir/undo002
--list_files $bugdir
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=undo tablespace .*undo003.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
# clean up & Restore
--source ../include/log_file_cleanup.inc
--echo # 7. With ibdata files & Without undo002
--remove_file $bugdir/undo002
--list_files $bugdir
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=Expected to open 3 undo tablespaces but was able;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=to find only 1 undo tablespaces;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
# clean up & Restore
--source ../include/log_file_cleanup.inc
--echo # 8. With ibdata files & Without undo001, undo002
--remove_file $bugdir/undo001
--remove_file $bugdir/undo002
--list_files $bugdir
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=Expected to open 3 undo tablespaces but was able;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=to find only 0 undo tablespaces;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
# clean up & Restore
--source ../include/log_file_cleanup.inc
--echo # 9. Without ibdata*, without undo*, Without ib_logfile1 and with ib_logfile2
--remove_files_wildcard $bugdir ibdata*
--remove_files_wildcard $bugdir undo00*
--remove_file $bugdir/ib_logfile1
--list_files $bugdir
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=redo log file .*ib_logfile0.* exists\. Creating system tablespace with existing redo log files is not recommended\. Please delete all redo log files before creating new system tablespace\.;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
# clean up & Restore
--source ../include/log_file_cleanup.inc
# 10. With ibdata*, without ib_logfile0
#--remove_file $bugdir/ib_logfile0
# The below would start the server. Since we cannot start a parallel
# server, do not test the below case
#--error 1,134
#--exec $MYSQLD $args
# clean up & Restore
#--source ../include/log_file_cleanup.inc
--echo # 11. With ibdata*, without ib_logfile1
--remove_file $bugdir/ib_logfile1
--list_files $bugdir
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=Only one log file found;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN=\[ERROR\] Aborting;
--source include/search_pattern_in_file.inc
# clean up & Restore
--source ../include/log_file_cleanup.inc
--echo # 12. With ibdata*, without ib_logfile2
--remove_file $bugdir/ib_logfile2
--list_files $bugdir
--error 1,134
--exec $MYSQLD $args
let SEARCH_PATTERN=Resizing redo log from \d+\*\d+ to \d+\*\d+ pages, LSN=\d+;
--source include/search_pattern_in_file.inc
--echo # Cleanup
# Remove ibtmp* which are re-generated after each mysqld invocation
# skip auto generated auto.cnf from list_files
--remove_files_wildcard $bugdir auto.cnf
--remove_files_wildcard $bugdir ibtmp*
--list_files $bugdir
--remove_files_wildcard $bugdir
--rmdir $bugdir