📄 rpl_relayspace.test
字号:
# The slave is started with relay_log_space_limit=10 bytes,# to force the deadlock after one event.source include/master-slave.inc;connection slave;stop slave;connection master;# This will generate a master's binlog > 10 bytescreate 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 $run= 1;let $counter= 300;while ($run){ let $io_state= query_get_value("SHOW SLAVE STATUS", Slave_IO_State, 1); if (`SELECT '$io_state' = 'Waiting for the slave SQL thread to free enough relay log space'`){ let $run= 0; } sleep 0.1; if (!$counter){ --echo "Failed while waiting for slave IO thread block" SHOW SLAVE STATUS; exit; } dec $counter;}sleep 2;# A bug caused the I/O thread to refuse stopping.stop slave io_thread;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 after 10 seconds;# also the slave will probably not cooperate to shutdown# (as 2 threads are locked)select master_pos_wait('master-bin.001',200,6)=-1;# End of 4.1 tests
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -