#At file:///home/daogang/bzrwork/wl5493/mysql-trunk/ based on revid:alexander.nozdrin@stripped
3208 Dao-Gang.Qu@stripped 2010-12-16
WL#5493 Binlog crash-safe when master crashed
Trim the crashed binlog file to last valid transaction or event
(non-transaction) base on binlog size(valid_pos) when MYSQL server
crashed in the middle of binlog. And add a temp file to guarantee
the binlog index file to be crash safe.
WL#5440 Test binlog and replication when master crashed
Test whether the transaction is binlogged partly and the replication
works fine or not when the master crashed.
@ mysql-test/r/crash_commit_before.result
Removed the result file. Because its test file is removed.
@ mysql-test/suite/binlog/r/binlog_index.result
Test result for WL#5493
@ mysql-test/suite/binlog/r/rpl_crash_safe_master_checksum.result
Test result for WL#5493.
@ mysql-test/suite/binlog/t/binlog_delete_and_flush_index.test
Updated for WL#5493. The index_file will be renamed
from binlog_crash_safe_index_file after every appending
and purging to the index_file. So we need change its
mode for LOAD_FILE every time.
@ mysql-test/suite/binlog/t/binlog_index.test
Added Test cases to verify that the index file will be crash safe.
@ mysql-test/suite/binlog/t/rpl_crash_safe_master_checksum.test
Added test to verify if the crashed binlog file is trimmed to
last valid transaction or event(non-transaction) correctly.
@ mysql-test/suite/rpl/r/rpl_change_master_crash_safe.result
Renamed to rpl_change_master_crash_safe_slave.result
@ mysql-test/suite/rpl/r/rpl_change_master_crash_safe_slave.result
Renamed from rpl_change_master_crash_safe.result
@ mysql-test/suite/rpl/r/rpl_crash_safe_master.result
Test result of WL#5493 and WL#5440.
@ mysql-test/suite/rpl/r/rpl_migration_crash_safe.result
Renamed to rpl_migration_crash_safe_slave.result.
@ mysql-test/suite/rpl/r/rpl_migration_crash_safe_slave.result
Renamed from rpl_migration_crash_safe.result
@ mysql-test/suite/rpl/r/rpl_mixed_crash_safe.result
Renamed to rpl_mixed_crash_safe_slave.result
@ mysql-test/suite/rpl/r/rpl_mixed_crash_safe_slave.result
Renamed from rpl_mixed_crash_safe.result
@ mysql-test/suite/rpl/r/rpl_row_crash_safe.result
Renamed to rpl_row_crash_safe_slave.result.
@ mysql-test/suite/rpl/r/rpl_row_crash_safe_slave.result
Rename from rpl_row_crash_safe.result
@ mysql-test/suite/rpl/r/rpl_stm_crash_safe.result
Renamed to rpl_stm_crash_safe_slave.result
@ mysql-test/suite/rpl/r/rpl_stm_crash_safe_slave.result
Renamed from rpl_stm_crash_safe.result
@ mysql-test/suite/rpl/t/rpl_change_master_crash_safe-slave.opt
Renamed to rpl_change_master_crash_safe_slave-slave.opt
@ mysql-test/suite/rpl/t/rpl_change_master_crash_safe.test
Renamed to rpl_change_master_crash_safe_slave.test
@ mysql-test/suite/rpl/t/rpl_change_master_crash_safe_slave-slave.opt
Renamed from rpl_change_master_crash_safe-slave.opt
@ mysql-test/suite/rpl/t/rpl_change_master_crash_safe_slave.test
Renamed from rpl_change_master_crash_safe.test
@ mysql-test/suite/rpl/t/rpl_crash_safe_master.test
Added test to verify if the crashed binlog file is trimmed to
last valid transaction or event(non-transaction) correctly.
@ mysql-test/suite/rpl/t/rpl_migration_crash_safe.test
Renamed to rpl_migration_crash_safe_slave.test
@ mysql-test/suite/rpl/t/rpl_migration_crash_safe_slave.test
Renamed from rpl_migration_crash_safe.test
@ mysql-test/suite/rpl/t/rpl_mixed_crash_safe-slave.opt
Renamed to rpl_mixed_crash_safe_slave-slave.opt
@ mysql-test/suite/rpl/t/rpl_mixed_crash_safe.test
Renamed to rpl_mixed_crash_safe_slave.test
@ mysql-test/suite/rpl/t/rpl_mixed_crash_safe_slave-slave.opt
Renamed from rpl_mixed_crash_safe-slave.opt
@ mysql-test/suite/rpl/t/rpl_mixed_crash_safe_slave.test
Renamed from rpl_mixed_crash_safe.test
@ mysql-test/suite/rpl/t/rpl_row_crash_safe-slave.opt
Renamed to rpl_row_crash_safe_slave-slave.opt
@ mysql-test/suite/rpl/t/rpl_row_crash_safe.test
Renamed to rpl_row_crash_safe_slave.test
@ mysql-test/suite/rpl/t/rpl_row_crash_safe_slave-slave.opt
Renamed from rpl_row_crash_safe-slave.opt
@ mysql-test/suite/rpl/t/rpl_row_crash_safe_slave.test
Renamed from rpl_row_crash_safe.test
@ mysql-test/suite/rpl/t/rpl_stm_crash_safe-slave.opt
Renamed to rpl_stm_crash_safe_slave-slave.opt
@ mysql-test/suite/rpl/t/rpl_stm_crash_safe.test
Renamed to pl_stm_crash_safe_slave.test
@ mysql-test/suite/rpl/t/rpl_stm_crash_safe_slave-slave.opt
Renamed from rpl_stm_crash_safe-slave.opt
@ mysql-test/suite/rpl/t/rpl_stm_crash_safe_slave.test
Renamed from rpl_stm_crash_safe.test
@ mysql-test/t/crash_commit_before-master.opt
Removed the opt file. Because its test file is removed.
@ mysql-test/t/crash_commit_before.test
Removed the test file. Because the test case is tested
in rpl_crashed_master.test file.
@ mysys/my_rename.c
Cleared obsolete code. Because all non-windows platforms will support
the "rename()" POSIX interface.
@ sql/binlog.cc
Added code to trim the crashed binlog file to last valid transaction
or event(non-transaction) base on valid_pos, make binlog index to be
crash safe.
@ sql/binlog.h
Added code to define these functions for binlog index crash safe.
@ sql/log_event.cc
Updated code to remove sql_print_error() line, because its
direct caller will invoke sql_print_error() to print error.
removed:
mysql-test/r/crash_commit_before.result
mysql-test/suite/rpl/r/rpl_change_master_crash_safe.result
mysql-test/suite/rpl/r/rpl_migration_crash_safe.result
mysql-test/suite/rpl/r/rpl_mixed_crash_safe.result
mysql-test/suite/rpl/r/rpl_row_crash_safe.result
mysql-test/suite/rpl/r/rpl_stm_crash_safe.result
mysql-test/suite/rpl/t/rpl_change_master_crash_safe-slave.opt
mysql-test/suite/rpl/t/rpl_change_master_crash_safe.test
mysql-test/suite/rpl/t/rpl_migration_crash_safe.test
mysql-test/suite/rpl/t/rpl_mixed_crash_safe-slave.opt
mysql-test/suite/rpl/t/rpl_mixed_crash_safe.test
mysql-test/suite/rpl/t/rpl_row_crash_safe-slave.opt
mysql-test/suite/rpl/t/rpl_row_crash_safe.test
mysql-test/suite/rpl/t/rpl_stm_crash_safe-slave.opt
mysql-test/suite/rpl/t/rpl_stm_crash_safe.test
mysql-test/t/crash_commit_before-master.opt
mysql-test/t/crash_commit_before.test
added:
mysql-test/suite/binlog/r/rpl_crash_safe_master_checksum.result
mysql-test/suite/binlog/t/rpl_crash_safe_master_checksum-master.opt
mysql-test/suite/binlog/t/rpl_crash_safe_master_checksum.test
mysql-test/suite/rpl/r/rpl_change_master_crash_safe_slave.result
mysql-test/suite/rpl/r/rpl_crash_safe_master.result
mysql-test/suite/rpl/r/rpl_migration_crash_safe_slave.result
mysql-test/suite/rpl/r/rpl_mixed_crash_safe_slave.result
mysql-test/suite/rpl/r/rpl_row_crash_safe_slave.result
mysql-test/suite/rpl/r/rpl_stm_crash_safe_slave.result
mysql-test/suite/rpl/t/rpl_change_master_crash_safe_slave-slave.opt
mysql-test/suite/rpl/t/rpl_change_master_crash_safe_slave.test
mysql-test/suite/rpl/t/rpl_crash_safe_master.test
mysql-test/suite/rpl/t/rpl_migration_crash_safe_slave.test
mysql-test/suite/rpl/t/rpl_mixed_crash_safe_slave-slave.opt
mysql-test/suite/rpl/t/rpl_mixed_crash_safe_slave.test
mysql-test/suite/rpl/t/rpl_row_crash_safe_slave-slave.opt
mysql-test/suite/rpl/t/rpl_row_crash_safe_slave.test
mysql-test/suite/rpl/t/rpl_stm_crash_safe_slave-slave.opt
mysql-test/suite/rpl/t/rpl_stm_crash_safe_slave.test
modified:
mysql-test/suite/binlog/r/binlog_index.result
mysql-test/suite/binlog/t/binlog_delete_and_flush_index.test
mysql-test/suite/binlog/t/binlog_index.test
mysys/my_rename.c
sql/binlog.cc
sql/binlog.h
sql/log_event.cc
Diff too large for email (10201 lines, the limit is 10000).
No bundle (reason: no diff => no bundle).
| Thread |
|---|
| • bzr commit into mysql-trunk branch (Dao-Gang.Qu:3208) WL#5493 | Dao-Gang.Qu | 16 Dec |