summaryrefslogtreecommitdiff
path: root/mysql-test/t/rpl_relayspace.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t/rpl_relayspace.test')
-rw-r--r--mysql-test/t/rpl_relayspace.test33
1 files changed, 16 insertions, 17 deletions
diff --git a/mysql-test/t/rpl_relayspace.test b/mysql-test/t/rpl_relayspace.test
index 8d4f01339c7..bb82781b511 100644
--- a/mysql-test/t/rpl_relayspace.test
+++ b/mysql-test/t/rpl_relayspace.test
@@ -1,33 +1,32 @@
-# The slave is started with relay_log_space_limit=1024 bytes,
-# to force the deadlock
+# 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 bytes
create table t1 (a int);
-let $1=200;
-disable_query_log;
-while ($1)
-{
-# eval means expand $ expressions
- eval insert into t1 values( $1 );
- dec $1;
-}
-# This will generate one 10kB master's binlog
-enable_query_log;
-save_master_pos;
+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.
+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 1kB. And the SQL thread cannot purge this relay log
+# 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 1kB;
-# it will timeout after 45 seconds;
+# 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',5000,45)=-1;
+select master_pos_wait('master-bin.001',200,6)=-1;