Commit 04d72f86 authored by Andrei Elkin's avatar Andrei Elkin

Bug#38934 slave slave until does not work with --replicate-same-server-id

Bug#38540 rpl_server_id2 uses show slave status unnecessarily
            
Slave did not perform any event recorded into the relay log from some
different master when it was started with --replicate-same-server-id.
The reason appeared to be a consequence of BUG#38734 which stopped the
sql thread at its startup time.
      
The real fixes for the current bug are in the patch for BUG#38734.
This changeset carries only a regression test for the bugs.  Bug#38540
gets fixed too by means of eliminating an extra show slave status.
parent 2790aceb
...@@ -8,45 +8,6 @@ create table t1 (n int); ...@@ -8,45 +8,6 @@ create table t1 (n int);
reset master; reset master;
stop slave; stop slave;
change master to master_port=SLAVE_PORT; change master to master_port=SLAVE_PORT;
show slave status;
Slave_IO_State
Master_Host 127.0.0.1
Master_User root
Master_Port SLAVE_PORT
Connect_Retry 1
Master_Log_File
Read_Master_Log_Pos 4
Relay_Log_File slave-relay-bin.000001
Relay_Log_Pos 4
Relay_Master_Log_File
Slave_IO_Running No
Slave_SQL_Running No
Replicate_Do_DB
Replicate_Ignore_DB
Replicate_Do_Table
Replicate_Ignore_Table
Replicate_Wild_Do_Table
Replicate_Wild_Ignore_Table #
Last_Errno 0
Last_Error
Skip_Counter 0
Exec_Master_Log_Pos 0
Relay_Log_Space 106
Until_Condition None
Until_Log_File
Until_Log_Pos 0
Master_SSL_Allowed No
Master_SSL_CA_File
Master_SSL_CA_Path
Master_SSL_Cert
Master_SSL_Cipher
Master_SSL_Key
Seconds_Behind_Master NULL
Master_SSL_Verify_Server_Cert No
Last_IO_Errno #
Last_IO_Error #
Last_SQL_Errno 0
Last_SQL_Error
start slave; start slave;
insert into t1 values (1); insert into t1 values (1);
select * from t1; select * from t1;
...@@ -55,3 +16,15 @@ n ...@@ -55,3 +16,15 @@ n
1 1
stop slave; stop slave;
drop table t1; drop table t1;
reset master;
create table t1(n int);
create table t2(n int);
change master to master_port=MASTER_PORT;
start slave until master_log_file='master-bin.000001', master_log_pos=107;
*** checking until postion execution: must be only t1 in the list ***
show tables;
Tables_in_test
t1
start slave sql_thread;
drop table t1;
drop table t2;
...@@ -13,4 +13,3 @@ ...@@ -13,4 +13,3 @@
rpl_redirect : Failure is sporadic and and the test is superfluous (mats) rpl_redirect : Failure is sporadic and and the test is superfluous (mats)
rpl_innodb_bug28430 : Failure on Solaris Bug #36793 rpl_innodb_bug28430 : Failure on Solaris Bug #36793
rpl_flushlog_loop : BUG#37733 2008-07-23 Sven disabled in 5.1-bugteam. the bug has been fixed in 5.1-rpl: please re-enable when that gets pushed to main rpl_flushlog_loop : BUG#37733 2008-07-23 Sven disabled in 5.1-bugteam. the bug has been fixed in 5.1-rpl: please re-enable when that gets pushed to main
rpl_server_id2 : Bug#38540 rpl_server_id2 uses show slave status unnecessarily
...@@ -9,9 +9,6 @@ reset master; ...@@ -9,9 +9,6 @@ reset master;
stop slave; stop slave;
--replace_result $SLAVE_MYPORT SLAVE_PORT --replace_result $SLAVE_MYPORT SLAVE_PORT
eval change master to master_port=$SLAVE_MYPORT; eval change master to master_port=$SLAVE_MYPORT;
--replace_result $SLAVE_MYPORT SLAVE_PORT
--replace_column 18 # 35 # 36 #
query_vertical show slave status;
start slave; start slave;
insert into t1 values (1); insert into t1 values (1);
save_master_pos; save_master_pos;
...@@ -23,4 +20,43 @@ select * from t1; # check that indeed 2 were inserted ...@@ -23,4 +20,43 @@ select * from t1; # check that indeed 2 were inserted
stop slave; stop slave;
drop table t1; drop table t1;
# End of 4.1 tests
#
# Bug#38934 slave slave until does not work with --replicate-same-server-id
#
# Verifying that slave performs all events until the master_log_pos
# in presense of --replicate-same-server-id the slave is started with.
connection master;
reset master;
# setting the until position to correspond to the first following create table
# which will make the event executed and the slave sql thread stopped
# right after that.
let $until_pos= query_get_value(SHOW MASTER STATUS, Position, 1);
inc $until_pos;
create table t1(n int);
create table t2(n int);
connection slave;
--replace_result $MASTER_MYPORT MASTER_PORT
eval change master to master_port=$MASTER_MYPORT;
eval start slave until master_log_file='master-bin.000001', master_log_pos=$until_pos;
--source include/wait_for_slave_io_to_start.inc
--source include/wait_for_slave_sql_to_stop.inc
--echo *** checking until postion execution: must be only t1 in the list ***
show tables;
# cleanup
connection slave;
start slave sql_thread;
connection master;
drop table t1;
drop table t2;
sync_slave_with_master;
# End of tests
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment