mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Bug #31240 load data infile replication between (4.0 or 4.1) and 5.1 fails
It's a regression issue. The reason of the bug appeared to be an error introduced into 5.1 source code. A piece of code in Create_file_log_event::do_apply_event() did not have test coverage which made make test and pb unaware. Fixed with inverting the old value of the return value from Create_file_log_event::do_apply_event(). The rpl test suite is extended with `rpl_cross_version' the file to hold regression cases similar to the current. mysql-test/suite/rpl/r/rpl_cross_version.result: new results file mysql-test/suite/rpl/t/rpl_cross_version-master.opt: options to the server to be able to start replication to itself mysql-test/suite/rpl/t/rpl_cross_version.test: regression test for bug#31240. sql/log_event.cc: Correcting the return value from Create_file_log_event::do_apply_event()
This commit is contained in:
12
mysql-test/suite/rpl/r/rpl_cross_version.result
Normal file
12
mysql-test/suite/rpl/r/rpl_cross_version.result
Normal file
@ -0,0 +1,12 @@
|
||||
==== Initialize ====
|
||||
Setting up fake replication from MYSQL_TEST_DIR/suite/binlog/std_data/binlog_old_version_4_1.000001
|
||||
==== Test ====
|
||||
start slave sql_thread;
|
||||
==== a prove that the /home/andrei/MySQL/BZR/FIXES/bug31240-ldi_41_2_51/mysql-test/suite/binlog/std_data/binlog_old_version_4_1.000001 has been processed successfully ====
|
||||
SELECT COUNT(*) - 17920 as zero FROM t3;
|
||||
zero
|
||||
0
|
||||
==== Clean up ====
|
||||
stop slave sql_thread;
|
||||
Cleaning up after setup_fake_relay_log.inc
|
||||
drop table t1, t3;
|
1
mysql-test/suite/rpl/t/rpl_cross_version-master.opt
Normal file
1
mysql-test/suite/rpl/t/rpl_cross_version-master.opt
Normal file
@ -0,0 +1 @@
|
||||
--replicate-same-server-id --relay-log=slave-relay-bin
|
36
mysql-test/suite/rpl/t/rpl_cross_version.test
Normal file
36
mysql-test/suite/rpl/t/rpl_cross_version.test
Normal file
@ -0,0 +1,36 @@
|
||||
# ==== Purpose ====
|
||||
#
|
||||
# Verify cross-version replication from an old master to the up-to-date slave
|
||||
#
|
||||
# ==== Implementation ====
|
||||
#
|
||||
# Feed to the slave server a binlog recorded on an old version master
|
||||
# via setting up slave-to-slave replication. The latter is done by means of
|
||||
# the opt file and include/setup_fake_relay_log.inc.
|
||||
# The master's binlog is treated as a relay log that the SQL thread executes.
|
||||
#
|
||||
|
||||
--source include/have_log_bin.inc
|
||||
|
||||
#
|
||||
# Bug#31240 load data infile replication between (4.0 or 4.1) and 5.1 fails
|
||||
#
|
||||
|
||||
--echo ==== Initialize ====
|
||||
# the relay log contains create t1, t3 tables and load data infile
|
||||
--let $fake_relay_log = $MYSQL_TEST_DIR/suite/binlog/std_data/binlog_old_version_4_1.000001
|
||||
--source include/setup_fake_relay_log.inc
|
||||
|
||||
--echo ==== Test ====
|
||||
start slave sql_thread;
|
||||
--let $slave_param = Exec_Master_Log_Pos
|
||||
# end_log_pos of the last event of the relay log
|
||||
--let $slave_param_value = 149436
|
||||
--source include/wait_for_slave_param.inc
|
||||
--echo ==== a prove that the $fake_relay_log has been processed successfully ====
|
||||
SELECT COUNT(*) - 17920 as zero FROM t3;
|
||||
|
||||
--echo ==== Clean up ====
|
||||
stop slave sql_thread;
|
||||
--source include/cleanup_fake_relay_log.inc
|
||||
drop table t1, t3;
|
Reference in New Issue
Block a user