mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
merging 5.0-bt -> 5.1-bt to local branch with bug@47210
This commit is contained in:
@@ -212,3 +212,31 @@ start slave sql_thread;
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=776;
|
||||
Warnings:
|
||||
Note 1254 Slave is already running
|
||||
include/stop_slave.inc
|
||||
drop table if exists t1;
|
||||
reset slave;
|
||||
change master to master_host='127.0.0.1',master_port=MASTER_PORT, master_user='root';
|
||||
drop table if exists t1;
|
||||
reset master;
|
||||
create table t1 (a int primary key auto_increment);
|
||||
start slave;
|
||||
include/stop_slave.inc
|
||||
master and slave are in sync now
|
||||
select 0 as zero;
|
||||
zero
|
||||
0
|
||||
insert into t1 set a=null;
|
||||
insert into t1 set a=null;
|
||||
select count(*) as two from t1;
|
||||
two
|
||||
2
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos= UNTIL_POS;;
|
||||
slave stopped at the prescribed position
|
||||
select 0 as zero;
|
||||
zero
|
||||
0
|
||||
select count(*) as one from t1;
|
||||
one
|
||||
1
|
||||
drop table t1;
|
||||
start slave;
|
||||
|
@@ -98,3 +98,67 @@ start slave until relay_log_file='slave-relay-bin.000002', master_log_pos=561;
|
||||
start slave sql_thread;
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=776;
|
||||
|
||||
#
|
||||
# bug#47210 first execution of "start slave until" stops too early
|
||||
#
|
||||
# testing that a slave rotate event that is caused by stopping the slave
|
||||
# does not intervene anymore in UNTIL condition.
|
||||
#
|
||||
|
||||
connection slave;
|
||||
source include/stop_slave.inc;
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
reset slave;
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
eval change master to master_host='127.0.0.1',master_port=$MASTER_MYPORT, master_user='root';
|
||||
|
||||
connection master;
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
reset master;
|
||||
create table t1 (a int primary key auto_increment);
|
||||
save_master_pos;
|
||||
let $master_pos= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
|
||||
connection slave;
|
||||
start slave;
|
||||
sync_with_master;
|
||||
|
||||
# at this point slave will close the relay log stamping it with its own
|
||||
# Rotate log event. This event won't be examined on matter of the master
|
||||
# UNTIL pos anymore.
|
||||
source include/stop_slave.inc;
|
||||
let $slave_exec_pos= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1);
|
||||
|
||||
--echo master and slave are in sync now
|
||||
let $diff_pos= `select $master_pos - $slave_exec_pos`;
|
||||
eval select $diff_pos as zero;
|
||||
|
||||
connection master;
|
||||
insert into t1 set a=null;
|
||||
let $until_pos= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
insert into t1 set a=null;
|
||||
select count(*) as two from t1;
|
||||
|
||||
connection slave;
|
||||
--replace_result $until_pos UNTIL_POS;
|
||||
eval start slave until master_log_file='master-bin.000001', master_log_pos= $until_pos;
|
||||
source include/wait_for_slave_sql_to_stop.inc;
|
||||
let $slave_exec_pos= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1);
|
||||
--echo slave stopped at the prescribed position
|
||||
let $diff_pos= `select $until_pos - $slave_exec_pos`;
|
||||
eval select $diff_pos as zero;
|
||||
select count(*) as one from t1;
|
||||
|
||||
|
||||
connection master;
|
||||
drop table t1;
|
||||
|
||||
connection slave;
|
||||
start slave;
|
||||
sync_with_master;
|
||||
|
||||
# End of tests
|
||||
|
Reference in New Issue
Block a user