# 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 --source include/rpl_end.inc