--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 let bugdir= $MYSQLTEST_VARDIR/tmp/log_file; --mkdir $bugdir --mkdir $bugdir/data --source include/shutdown_mysqld.inc let SEARCH_FILE = $bugdir/my_restart.err; let $args=--defaults-file=$bugdir/my.cnf --loose-console --innodb_dedicated_server=OFF --core-file --log-error-verbosity=3 > $SEARCH_FILE 2>&1 ; --echo # Write tmp/log_file/my.cnf --write_file $bugdir/my.cnf [mysqld] secure_file_priv="" innodb_fast_shutdown=0 innodb_data_file_path = ibdata1:16M;ibdata2:16M innodb_rollback_segments = 20 innodb_log_files_in_group = 3 innodb_log_file_size=20M loose-skip-log-bin EOF --exec echo "datadir = $bugdir/data" >> $bugdir/my.cnf --exec echo "innodb_data_home_dir = $bugdir/data" >> $bugdir/my.cnf --echo # Start mysqld without the possibility to create undo tablespaces --echo # because a directory exists named 'undo_002'. --mkdir $bugdir/data/undo_002 # In scope of WL#9461,WL#9357, in place upgrade condition requires # mysql.plugin.frm file. Create the file manually here to allow # initialization of innodb. --mkdir $bugdir/data/mysql write_file $bugdir/data/mysql/plugin.frm; EOF --error 1,3,42 --exec $MYSQLD $args let SEARCH_PATTERN=\[ERROR\] .*MY-\\d+.* File .*ibdata1: 'open' returned OS error 71. Cannot continue operation; --source include/search_pattern.inc --remove_file $bugdir/data/mysql_dd_upgrade_info --force-rmdir $bugdir/data/mysql --list_files $bugdir/data --rmdir $bugdir/data/undo_002 --echo # Start mysqld to create tablespaces according to my.cnf --exec $MYSQLD $args --initialize-insecure --cluster-id=1 --cluster-start-index=1 --cluster-info='127.0.0.1:29221@1' --echo # Backup the datadir --force-cpdir $bugdir/data $bugdir/data_backup --echo # 1. Start mysqld with non existent innodb_log_group_home_dir --error 1,3,42 --exec $MYSQLD $args --innodb_log_group_home_dir=/path/to/non-existent/ --innodb-unknown-parameter-1 let SEARCH_PATTERN=\[ERROR\] .* Cannot create .path.to.non-existent.ib_logfile101; --source include/search_pattern.inc let SEARCH_PATTERN=\[ERROR\] .* Aborting; --source include/search_pattern.inc --echo # 2. Start mysqld without ibdata1 --remove_file $bugdir/data/ibdata1 --error 1,3,42 --exec $MYSQLD $args --innodb-unknown-parameter-2 let SEARCH_PATTERN=\[ERROR\] .* File .*ibdata1: 'open' returned OS error 71. Cannot continue operation; --source include/search_pattern.inc --source ../include/bootstrap_cleanup.inc --echo # 3. Start mysqld without ibdata2 --remove_file $bugdir/data/ibdata2 --error 1,3,42 --exec $MYSQLD $args --innodb-unknown-parameter-3 let SEARCH_PATTERN=\[ERROR\] .* Tablespace size stored in header is \d+ pages, but; --source include/search_pattern.inc let SEARCH_PATTERN=\[ERROR\] .* Aborting; --source include/search_pattern.inc --source ../include/bootstrap_cleanup.inc --echo # 4. Start mysqld without ibdata1 & ibdata2 --remove_file $bugdir/data/ibdata1 --remove_file $bugdir/data/ibdata2 --error 1,3,42 --exec $MYSQLD $args --innodb-unknown-parameter-4 let SEARCH_PATTERN=\[ERROR\] .* File .*ibdata1: 'open' returned OS error 71. Cannot continue operation; --source include/search_pattern.inc --source ../include/bootstrap_cleanup.inc --echo # 5. Start mysqld without ibdata*, ib_logfile* and undo_00* --remove_files_wildcard $bugdir/data ibdata* --remove_files_wildcard $bugdir/data ib_logfile* --remove_files_wildcard $bugdir/data undo_00* --error 1,3,42 --exec $MYSQLD $args --innodb-unknown-parameter-5 let SEARCH_PATTERN=\[ERROR\] .* File .*ibdata1: 'open' returned OS error 71. Cannot continue operation; --source include/search_pattern.inc --source ../include/bootstrap_cleanup.inc --echo # 6. Start mysqld without undo_002 --remove_file $bugdir/data/undo_002 --error 1,3,42 --exec $MYSQLD $args --innodb-unknown-parameter-6 let SEARCH_PATTERN=\[Note\] .* Creating UNDO Tablespace .*undo_002; --source include/search_pattern.inc --source ../include/bootstrap_cleanup.inc --echo # 7. Start mysqld without undo_001, undo_002 --remove_file $bugdir/data/undo_001 --remove_file $bugdir/data/undo_002 --error 1,3,42 --exec $MYSQLD $args --innodb-unknown-parameter-7 let SEARCH_PATTERN=\[Note\] .* Creating UNDO Tablespace .*undo_001; --source include/search_pattern.inc let SEARCH_PATTERN=\[Note\] .* Creating UNDO Tablespace .*undo_002; --source include/search_pattern.inc --source ../include/bootstrap_cleanup.inc --echo # 8. Start mysqld without ib_logfile0 --remove_file $bugdir/data/ib_logfile0 --error 1,3,42 --exec $MYSQLD $args --innodb-unknown-parameter-8 let SEARCH_PATTERN=\[ERROR\] .* Cannot create log files because data files are corrupt or the database was not shut down cleanly after creating the data files; --source ../include/bootstrap_cleanup.inc --echo # 9. Start mysqld without ib_logfile1 --remove_file $bugdir/data/ib_logfile1 --error 1,3,42 --exec $MYSQLD $args --innodb-unknown-parameter-9 let SEARCH_PATTERN=\[ERROR\] .* Only one log file found; --source include/search_pattern.inc let SEARCH_PATTERN=\[ERROR\] .* Aborting; --source include/search_pattern.inc --source ../include/bootstrap_cleanup.inc --echo # 10. Start mysqld without ib_logfile2 --remove_file $bugdir/data/ib_logfile2 --error 1,3,42 --exec $MYSQLD $args --innodb-unknown-parameter-10 let SEARCH_PATTERN=\[Note\] .* Resizing redo log from \d+\*\d+ to \d+\*\d+ bytes, LSN=\d+; --source include/search_pattern.inc --source ../include/bootstrap_cleanup.inc --echo # 11. Add new datafile at the end --error 1,3,42 --exec $MYSQLD $args --innodb-data_file_path="ibdata1:16M;ibdata2:16M;ibdata3:20M:autoextend" --innodb-unknown-parameter-11 let SEARCH_PATTERN=\[Note\] .* File.*ibdata3. size is now 20 MB; --source include/search_pattern.inc --echo # 12. Show that --innodb-undo-directory cannot be an ancestor of the datadir --error 1,3,42 --exec $MYSQLD $args --innodb-undo-directory=.. --innodb-unknown-parameter-12 let SEARCH_PATTERN=\[ERROR\] .* The innodb_undo_directory is not allowed to be an ancestor of the datadir; --source include/search_pattern.inc --echo # Cleanup --force-rmdir $bugdir --source include/start_mysqld.inc