408 lines
12 KiB
Plaintext
408 lines
12 KiB
Plaintext
call mtr.add_suppression('Attempting backtrace');
|
|
call mtr.add_suppression('MYSQL_BIN_LOG::purge_logs failed to process registered files that would be purged.');
|
|
call mtr.add_suppression('MYSQL_BIN_LOG::open failed to sync the index file');
|
|
call mtr.add_suppression('Turning logging off for the whole duration of the MySQL server process.');
|
|
call mtr.add_suppression('Could not open .*');
|
|
call mtr.add_suppression('MYSQL_BIN_LOG::purge_logs failed to clean registers before purging logs.');
|
|
RESET MASTER;
|
|
flush logs;
|
|
flush logs;
|
|
flush logs;
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000001 #
|
|
master-bin.000002 #
|
|
master-bin.000003 #
|
|
master-bin.000004 #
|
|
purge binary logs TO 'master-bin.000004';
|
|
Warnings:
|
|
Warning 1612 Being purged log master-bin.000001 was not found
|
|
*** must show a list starting from the 'TO' argument of PURGE ***
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000004 #
|
|
reset master;
|
|
flush logs;
|
|
flush logs;
|
|
flush logs;
|
|
*** must be a warning master-bin.000001 was not found ***
|
|
Warnings:
|
|
Warning 1868 file master-bin.000004 was not purged because it is the active log file.
|
|
Warning 1612 Being purged log master-bin.000001 was not found
|
|
*** must show one record, of the active binlog, left in the index file after PURGE ***
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000004 #
|
|
reset master;
|
|
flush logs;
|
|
flush logs;
|
|
flush logs;
|
|
purge binary logs TO 'master-bin.000002';
|
|
ERROR HY000: Fatal error during log purge
|
|
show warnings;
|
|
Level Code Message
|
|
Warning 1377 a problem with deleting master-bin.000001; consider examining correspondence of your binlog index file to the actual binlog files
|
|
Error 1377 Fatal error during log purge
|
|
reset master;
|
|
# crash_purge_before_update_index
|
|
flush logs;
|
|
SET SESSION debug="+d,crash_purge_before_update_index";
|
|
purge binary logs TO 'master-bin.000002';
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000001
|
|
master-bin.000002
|
|
master-bin.000003
|
|
|
|
# crash_purge_non_critical_after_update_index
|
|
flush logs;
|
|
SET SESSION debug="+d,crash_purge_non_critical_after_update_index";
|
|
purge binary logs TO 'master-bin.000004';
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000004
|
|
master-bin.000005
|
|
|
|
# crash_purge_critical_after_update_index
|
|
flush logs;
|
|
SET SESSION debug="+d,crash_purge_critical_after_update_index";
|
|
purge binary logs TO 'master-bin.000006';
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000006
|
|
master-bin.000007
|
|
|
|
# crash_create_non_critical_before_update_index
|
|
SET SESSION debug="+d,crash_create_non_critical_before_update_index";
|
|
flush logs;
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000006
|
|
master-bin.000007
|
|
master-bin.000008
|
|
|
|
# crash_create_critical_before_update_index
|
|
SET SESSION debug="+d,crash_create_critical_before_update_index";
|
|
flush logs;
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000006
|
|
master-bin.000007
|
|
master-bin.000008
|
|
master-bin.000009
|
|
|
|
# crash_create_after_update_index
|
|
SET SESSION debug="+d,crash_create_after_update_index";
|
|
flush logs;
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000006
|
|
master-bin.000007
|
|
master-bin.000008
|
|
master-bin.000009
|
|
master-bin.000010
|
|
master-bin.000011
|
|
|
|
#
|
|
# This should put the server in unsafe state and stop
|
|
# accepting any command. If we inject a fault at this
|
|
# point and continue the execution the server crashes.
|
|
#
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000006
|
|
master-bin.000007
|
|
master-bin.000008
|
|
master-bin.000009
|
|
master-bin.000010
|
|
master-bin.000011
|
|
|
|
# fault_injection_registering_index
|
|
SET SESSION debug="+d,fault_injection_registering_index";
|
|
SET GLOBAL binlog_error_action= IGNORE_ERROR;
|
|
flush logs;
|
|
ERROR HY000: Can't open file: 'master-bin.000012' (errno: 1 - Operation not permitted)
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000006
|
|
master-bin.000007
|
|
master-bin.000008
|
|
master-bin.000009
|
|
master-bin.000010
|
|
master-bin.000011
|
|
|
|
# restart
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000006
|
|
master-bin.000007
|
|
master-bin.000008
|
|
master-bin.000009
|
|
master-bin.000010
|
|
master-bin.000011
|
|
master-bin.000012
|
|
|
|
# fault_injection_updating_index
|
|
SET SESSION debug="+d,fault_injection_updating_index";
|
|
SET GLOBAL binlog_error_action= IGNORE_ERROR;
|
|
flush logs;
|
|
ERROR HY000: Can't open file: 'master-bin.000013' (errno: 1 - Operation not permitted)
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000006
|
|
master-bin.000007
|
|
master-bin.000008
|
|
master-bin.000009
|
|
master-bin.000010
|
|
master-bin.000011
|
|
master-bin.000012
|
|
|
|
# restart
|
|
SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
|
|
SELECT @index;
|
|
@index
|
|
master-bin.000006
|
|
master-bin.000007
|
|
master-bin.000008
|
|
master-bin.000009
|
|
master-bin.000010
|
|
master-bin.000011
|
|
master-bin.000012
|
|
master-bin.000013
|
|
|
|
# Test case6: Set DEBUG POINT before rename index file when
|
|
# appending a binlog file name to index file.
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000006 #
|
|
master-bin.000007 #
|
|
master-bin.000008 #
|
|
master-bin.000009 #
|
|
master-bin.000010 #
|
|
master-bin.000011 #
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
SET SESSION debug="+d,crash_create_before_rename_index_file";
|
|
flush logs;
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
# Restart the master server
|
|
# Test if the index file has the correct data,
|
|
# i.e. binlog file name is added.
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000006 #
|
|
master-bin.000007 #
|
|
master-bin.000008 #
|
|
master-bin.000009 #
|
|
master-bin.000010 #
|
|
master-bin.000011 #
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
# Test case7: Set DEBUG POINT after rename index file when
|
|
# appending a binlog file name to index file.
|
|
SET SESSION debug="+d,crash_create_after_rename_index_file";
|
|
flush logs;
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
# Restart the master server
|
|
# Test if the index file has the correct data,
|
|
# i.e. binlog file name is added.
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000006 #
|
|
master-bin.000007 #
|
|
master-bin.000008 #
|
|
master-bin.000009 #
|
|
master-bin.000010 #
|
|
master-bin.000011 #
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
master-bin.000016 #
|
|
master-bin.000017 #
|
|
# Test case8: Set DEBUG POINT after rename index file when
|
|
# purging the index file.
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000006 #
|
|
master-bin.000007 #
|
|
master-bin.000008 #
|
|
master-bin.000009 #
|
|
master-bin.000010 #
|
|
master-bin.000011 #
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
master-bin.000016 #
|
|
master-bin.000017 #
|
|
SET SESSION debug="+d,crash_create_after_rename_index_file";
|
|
purge binary logs TO 'master-bin.000010';
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
# Restart the master server
|
|
# Test if the index file has the correct data,
|
|
# i.e. requested binlog file names are removed.
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000010 #
|
|
master-bin.000011 #
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
master-bin.000016 #
|
|
master-bin.000017 #
|
|
master-bin.000018 #
|
|
# Test case9: Set DEBUG POINT befor rename index file when
|
|
# purging the index file.
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000010 #
|
|
master-bin.000011 #
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
master-bin.000016 #
|
|
master-bin.000017 #
|
|
master-bin.000018 #
|
|
SET SESSION debug="+d,crash_create_before_rename_index_file";
|
|
purge binary logs TO 'master-bin.000012';
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
# Restart the master server
|
|
# Test if the index file has the correct data,
|
|
# i.e. requested binlog file names are removed.
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
master-bin.000016 #
|
|
master-bin.000017 #
|
|
master-bin.000018 #
|
|
master-bin.000019 #
|
|
# Test case10: Inject a fault to copy part content to the temp file
|
|
# when purging the index file.
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
master-bin.000016 #
|
|
master-bin.000017 #
|
|
master-bin.000018 #
|
|
master-bin.000019 #
|
|
SET SESSION debug="+d,fault_injection_copy_part_file";
|
|
purge binary logs TO 'master-bin.000014';
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
# Restart the master server
|
|
# Test the index file is complete, although is not purged successfully.
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
master-bin.000016 #
|
|
master-bin.000017 #
|
|
master-bin.000018 #
|
|
master-bin.000019 #
|
|
master-bin.000020 #
|
|
# Test case11: Bug #20381055SERVER CRASHES IF INDEX FILE IS OPENED BY
|
|
SET SESSION debug="d,force_index_file_delete_failure";
|
|
call mtr.add_suppression("Failed to delete the existing index file");
|
|
call mtr.add_suppression("failed to move crash safe index file to index file");
|
|
call mtr.add_suppression("failed to update the index file");
|
|
PURGE BINARY LOGS TO 'master-bin.000014';;
|
|
ERROR HY000: I/O error reading log index file
|
|
# Test the index file is complete, although is not purged successfully.
|
|
# Also this will indicate that binary logging is not disabled.
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
master-bin.000016 #
|
|
master-bin.000017 #
|
|
master-bin.000018 #
|
|
master-bin.000019 #
|
|
master-bin.000020 #
|
|
SET GLOBAL binlog_error_action='IGNORE_ERROR';
|
|
FLUSH LOGS;
|
|
ERROR HY000: Can't open file: 'master-bin.000021' (errno: 1 - Operation not permitted)
|
|
SHOW BINARY LOGS;
|
|
ERROR HY000: You are not using binary logging
|
|
# restart
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
master-bin.000016 #
|
|
master-bin.000017 #
|
|
master-bin.000018 #
|
|
master-bin.000019 #
|
|
master-bin.000020 #
|
|
master-bin.000021 #
|
|
CREATE TABLE t1(i INT);
|
|
SET GLOBAL binlog_error_action='IGNORE_ERROR';
|
|
SET SESSION debug="+d,force_index_file_delete_failure";
|
|
SET SESSION debug="+d,force_rotate";
|
|
INSERT INTO t1 VALUES (12);
|
|
ERROR HY000: Can't open file: 'master-bin.000022' (errno: 1 - Operation not permitted)
|
|
SHOW BINARY LOGS;
|
|
ERROR HY000: You are not using binary logging
|
|
# restart
|
|
show binary logs;
|
|
Log_name File_size
|
|
master-bin.000012 #
|
|
master-bin.000013 #
|
|
master-bin.000014 #
|
|
master-bin.000015 #
|
|
master-bin.000016 #
|
|
master-bin.000017 #
|
|
master-bin.000018 #
|
|
master-bin.000019 #
|
|
master-bin.000020 #
|
|
master-bin.000021 #
|
|
master-bin.000022 #
|
|
DROP TABLE t1;
|
|
SET SESSION debug="";
|
|
# Test case11: Ends
|
|
# Test case12: Bug#25839610 ABORT OCCUR DURING SLAVE BACKUP
|
|
# WHEN RELAY LOG INDEX IS LOCK
|
|
# This test verifies that serveral retries are performed
|
|
# if there is a failure while deleting/renaming index files.
|
|
SET SESSION debug="+d,simulate_index_file_delete_failure";
|
|
SET SESSION debug="+d,simulate_crash_safe_index_file_rename_failure";
|
|
FLUSH LOGS;
|
|
include/assert_grep.inc [Retried for delete.]
|
|
include/assert_grep.inc [Retried for rename.]
|
|
SET SESSION debug="";
|
|
# Test case12: Ends
|
|
SET GLOBAL binlog_error_action= ABORT_SERVER;
|
|
RESET MASTER;
|
|
End of tests
|