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.'); flush tables; 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 # flush tables; 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 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_dbug="+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_dbug="+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_dbug="+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_dbug="+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_dbug="+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_dbug="+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_dbug="+d,fault_injection_registering_index"; flush logs; ERROR HY000: Can't open file: 'master-bin.000012' (errno: 1) 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 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_dbug="+d,fault_injection_updating_index"; flush logs; ERROR HY000: Can't open file: 'master-bin.000013' (errno: 1) 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 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 SET SESSION debug_dbug=""; End of tests