summaryrefslogtreecommitdiff
path: root/mysql-test/suite/rpl/t/rpl_relayspace.test
blob: cd04c2ccc0b7481f26a3936aaf51bfa9e5b2a81a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# The slave is started with relay_log_space_limit=10 bytes,
# to force the deadlock after one event.

source include/master-slave.inc;
let $master_log_file= query_get_value(SHOW MASTER STATUS, File, 1);
connection slave;
stop slave;
source include/wait_for_slave_to_stop.inc;
connection master;
# This will generate a master's binlog > 10 bytes
create table t1 (a int);
drop table t1;
create table t1 (a int);
drop table t1;
connection slave;
reset slave;
start slave io_thread;
# Give the I/O thread time to block.
let $slave_param= Slave_IO_State;
let $slave_param_value= Waiting for the slave SQL thread to free enough relay log space;
source include/wait_for_slave_param.inc;

# A bug caused the I/O thread to refuse stopping.
stop slave io_thread;
source include/wait_for_slave_io_to_stop.inc;
reset slave;
start slave;
# The I/O thread stops filling the relay log when
# it's >10b. And the SQL thread cannot purge this relay log
# as purge is done only when the SQL thread switches to another
# relay log, which does not exist here.
# So we should have a deadlock.
# if it is not resolved automatically we'll detect
# it with master_pos_wait that waits for farther than 1Ob;
# it will timeout;
# also the slave will probably not cooperate to shutdown
# (as 2 threads are locked)
--replace_result $master_log_file MASTER_LOG_FILE
eval select master_pos_wait('$master_log_file',200,30)=-1;


# End of 4.1 tests