MDEV-32512 log_page_corruption.test fails on windows build
Some calls of extend_space() perl function miss the last parameter. Some cases in the test check corrupted pages info absence in the output file if the table is dropped. We should also test if the corruption presents before testing its absence. Reviewed by: Vladislav Vaintroub
This commit is contained in:
parent
f53321cbdb
commit
04c664bd8f
@ -26,6 +26,17 @@ INSERT INTO t7_corrupted_to_alter VALUES (3), (4), (5), (6), (7), (8), (9);
|
||||
# Backup must fail due to page corruption
|
||||
FOUND 1 /Database page corruption detected.*/ in backup.log
|
||||
# "innodb_corrupted_pages" file must not exist
|
||||
# Backup must not fail, but "innodb_corrupted_pages" file must be created due to --log-innodb-page-corruption option, and the file must contain all corrupted pages info, including those, which are supposed to be absent in the next test due to "DROP TABLE" execution during backup
|
||||
--- "innodb_corrupted_pages" file content: ---
|
||||
test/t1_corrupted
|
||||
4 6 7
|
||||
test/t2_corrupted
|
||||
5 6 8
|
||||
test/t5_corrupted_to_rename
|
||||
4
|
||||
test/t6_corrupted_to_drop
|
||||
4
|
||||
------
|
||||
# Backup must not fail, but "innodb_corrupted_pages" file must be created due to --log-innodb-page-corruption option
|
||||
FOUND 1 /Database page corruption detected.*/ in backup.log
|
||||
FOUND 1 /completed OK!/ in backup.log
|
||||
@ -45,6 +56,23 @@ INSERT INTO t1_inc_corrupted VALUES (3), (4), (5), (6), (7), (8), (9);
|
||||
INSERT INTO t2_inc_corrupted VALUES (3), (4), (5), (6), (7), (8), (9);
|
||||
INSERT INTO t3_inc VALUES (3), (4), (5), (6), (7), (8), (9);
|
||||
# restart
|
||||
# Backup must not fail, but "innodb_corrupted_pages" file must be created due to --log-innodb-page-corruption option, and the file must contain all corrupted pages info, including those, which are supposed to be absent in the next test due to "DROP TABLE" execution during backup
|
||||
--- "innodb_corrupted_pages" file content: ---
|
||||
test/t1_corrupted
|
||||
4 6 7
|
||||
test/t1_inc_corrupted
|
||||
4 6 7
|
||||
test/t2_corrupted
|
||||
5 6 8
|
||||
test/t2_inc_corrupted
|
||||
5 6 8
|
||||
test/t5_corrupted_to_rename_renamed
|
||||
4
|
||||
test/t5_inc_corrupted_to_rename
|
||||
4
|
||||
test/t6_inc_corrupted_to_drop
|
||||
4
|
||||
------
|
||||
# Backup must not fail, but "innodb_corrupted_pages" file must be created due to --log-innodb-page-corruption option
|
||||
--- "innodb_corrupted_pages" file content: ---
|
||||
test/t1_corrupted
|
||||
|
@ -49,7 +49,7 @@ corrupt_space_page_id("$schema/t2_corrupted.ibd",
|
||||
$last_page_no = extend_space("$schema/t5_corrupted_to_rename.ibd", 1);
|
||||
corrupt_space_page_id("$schema/t5_corrupted_to_rename.ibd", $last_page_no);
|
||||
|
||||
$last_page_no = extend_space("$schema/t6_corrupted_to_drop.ibd", );
|
||||
$last_page_no = extend_space("$schema/t6_corrupted_to_drop.ibd", 1);
|
||||
corrupt_space_page_id("$schema/t6_corrupted_to_drop.ibd", $last_page_no);
|
||||
EOF
|
||||
--source include/start_mysqld.inc
|
||||
@ -74,6 +74,21 @@ exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --target-dir=
|
||||
--file_exists $corrupted_pages_file
|
||||
--rmdir $targetdir
|
||||
|
||||
--echo # Backup must not fail, but "innodb_corrupted_pages" file must be created due to --log-innodb-page-corruption option, and the file must contain all corrupted pages info, including those, which are supposed to be absent in the next test due to "DROP TABLE" execution during backup
|
||||
--disable_result_log
|
||||
--exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --log-innodb-page-corruption --target-dir=$targetdir
|
||||
--enable_result_log
|
||||
|
||||
--echo --- "innodb_corrupted_pages" file content: ---
|
||||
perl;
|
||||
do "$ENV{MTR_SUITE_DIR}/include/corrupt-page.pl";
|
||||
print_corrupted_pages_file($ENV{corrupted_pages_file},
|
||||
$ENV{corrupted_pages_file_filt});
|
||||
EOF
|
||||
--cat_file $corrupted_pages_file_filt
|
||||
--echo ------
|
||||
--rmdir $targetdir
|
||||
|
||||
--let after_load_tablespaces=CREATE TABLE test.t4_corrupted_new ENGINE=INNODB SELECT UUID() from test.seq_1_to_10
|
||||
--let add_corrupted_page_for_test_t4_corrupted_new=1
|
||||
--let after_copy_test_t5_corrupted_to_rename=RENAME TABLE test.t5_corrupted_to_rename TO test.t5_corrupted_to_rename_renamed
|
||||
@ -134,7 +149,7 @@ $last_page_no = extend_space("$schema/t5_inc_corrupted_to_rename.ibd", 1);
|
||||
corrupt_space_page_id("$schema/t5_inc_corrupted_to_rename.ibd", $last_page_no);
|
||||
print $fh "$last_page_no\n";
|
||||
|
||||
$last_page_no = extend_space("$schema/t6_inc_corrupted_to_drop.ibd", );
|
||||
$last_page_no = extend_space("$schema/t6_inc_corrupted_to_drop.ibd", 1);
|
||||
corrupt_space_page_id("$schema/t6_inc_corrupted_to_drop.ibd", $last_page_no);
|
||||
|
||||
close $fh;
|
||||
@ -143,6 +158,23 @@ EOF
|
||||
|
||||
--let incdir=$MYSQLTEST_VARDIR/tmp/backup_inc
|
||||
|
||||
--echo # Backup must not fail, but "innodb_corrupted_pages" file must be created due to --log-innodb-page-corruption option, and the file must contain all corrupted pages info, including those, which are supposed to be absent in the next test due to "DROP TABLE" execution during backup
|
||||
--disable_result_log
|
||||
--exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --log-innodb-page-corruption --target-dir=$incdir --incremental-basedir=$targetdir --dbug=+d,mariabackup_events,mariabackup_inject_code
|
||||
--disable_result_log
|
||||
|
||||
--let corrupted_pages_file = $incdir/innodb_corrupted_pages
|
||||
--echo --- "innodb_corrupted_pages" file content: ---
|
||||
perl;
|
||||
do "$ENV{MTR_SUITE_DIR}/include/corrupt-page.pl";
|
||||
print_corrupted_pages_file($ENV{corrupted_pages_file},
|
||||
$ENV{corrupted_pages_file_filt});
|
||||
EOF
|
||||
--cat_file $corrupted_pages_file_filt
|
||||
--echo ------
|
||||
--remove_file $corrupted_pages_file_filt
|
||||
--rmdir $incdir
|
||||
|
||||
--let after_load_tablespaces=CREATE TABLE test.t4_inc_corrupted_new ENGINE=INNODB SELECT UUID() from test.seq_1_to_10
|
||||
--let add_corrupted_page_for_test_t4_inc_corrupted_new=1
|
||||
--let after_copy_test_t5_inc_corrupted_to_rename=RENAME TABLE test.t5_inc_corrupted_to_rename TO test.t5_inc_corrupted_to_rename_renamed
|
||||
|
Loading…
x
Reference in New Issue
Block a user