1
# BUG#33029 5.0 to 5.1 replication fails on dup key when inserting
4
# For all 5.0 up to 5.0.58 exclusive, and 5.1 up to 5.1.12 exclusive,
5
# if one statement in a SP generated AUTO_INCREMENT value by the top
6
# statement, all statements after it would be considered generated
7
# AUTO_INCREMENT value by the top statement, and a erroneous INSERT_ID
8
# value might be associated with these statement, which could cause
9
# duplicate entry error and stop the slave.
11
# Test if the slave can replicate from such a buggy master
13
# The bug33029-slave-relay-bin.000001 file is the
14
# slave-replay-bin.000003 file generated by run the
15
# rpl_auto_increment_bug33029.test with clean up statements at the end
16
# of the test case removed on a buggy 5.0 server
18
source include/have_log_bin.inc;
20
# Need to restore this at the end; CHANGE MASTER modifies it (see the
21
# manual for CHANGE MASTER).
22
SET @old_relay_log_purge= @@global.relay_log_purge;
24
let $MYSQLD_DATADIR= `select @@datadir`;
26
copy_file $MYSQL_TEST_DIR/std_data/bug33029-slave-relay-bin.000001 $MYSQLD_DATADIR/slave-relay-bin.000001;
28
write_file $MYSQLD_DATADIR/slave-relay-bin.index;
29
slave-relay-bin.000001
33
MASTER_HOST='dummy.localdomain',
34
RELAY_LOG_FILE='slave-relay-bin.000001',
37
start slave sql_thread;
39
select MASTER_POS_WAIT('master-bin.000001', 3776);
42
echo # Result on slave;
48
DROP TABLE IF EXISTS t1, t2;
49
DROP PROCEDURE IF EXISTS p1;
50
DROP PROCEDURE IF EXISTS p2;
51
DROP FUNCTION IF EXISTS f1;
52
DROP TRIGGER IF EXISTS tr1;
55
stop slave sql_thread;
57
source include/wait_for_slave_sql_to_stop.inc;
58
remove_file $MYSQLD_DATADIR/slave-relay-bin.000001;
59
remove_file $MYSQLD_DATADIR/slave-relay-bin.index;
61
SET @@global.relay_log_purge= @old_relay_log_purge;