Loading mysql-test/t/rpl000001.test +20 −3 Original line number Diff line number Diff line Loading @@ -27,21 +27,38 @@ sync_with_master; connection master; reset master; connection slave; slave stop; reset slave; connection master; drop table if exists t1,t2; create table t1(n int); let $1=10; #we want the log to exceed 16K to test deal with the log that is bigger than #IO_SIZE let $1=5000; disable_query_log; while ($1) { eval insert into t1 values($1); eval insert into t1 values($1+get_lock("hold_slave",10)*0); dec $1; } enable_query_log; #try to cause a large relay log lag on the slave connection slave; select get_lock("hold_slave",10); slave start; #hope this is long enough for I/O thread to fetch over 16K relay log data sleep 1; select release_lock("hold_slave"); unlock tables; connection master; create table t2(id int); insert into t2 values(connection_id()); save_master_pos; connection master1; #avoid generating result create temporary table t1_temp(n int); Loading @@ -60,7 +77,7 @@ reap; connection slave; sync_with_master ; #give the slave a chance to exit sleep 0.5; wait_for_slave_to_stop; # The following test can't be done because the result of Pos will differ # on different computers Loading mysys/mf_iocache.c +1 −0 Original line number Diff line number Diff line Loading @@ -823,6 +823,7 @@ int my_b_append(register IO_CACHE *info, const byte *Buffer, uint Count) } Count-=length; Buffer+=length; info->end_of_file+=length; } end: Loading sql/slave.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1999,7 +1999,7 @@ static int queue_old_event(MASTER_INFO* mi, const char* buf, mi->master_log_pos += event_len; if (unlikely(processed_stop_event)) mi->ignore_stop_event=1; pthread_mutex_lock(&mi->data_lock); pthread_mutex_unlock(&mi->data_lock); return 0; } Loading Loading
mysql-test/t/rpl000001.test +20 −3 Original line number Diff line number Diff line Loading @@ -27,21 +27,38 @@ sync_with_master; connection master; reset master; connection slave; slave stop; reset slave; connection master; drop table if exists t1,t2; create table t1(n int); let $1=10; #we want the log to exceed 16K to test deal with the log that is bigger than #IO_SIZE let $1=5000; disable_query_log; while ($1) { eval insert into t1 values($1); eval insert into t1 values($1+get_lock("hold_slave",10)*0); dec $1; } enable_query_log; #try to cause a large relay log lag on the slave connection slave; select get_lock("hold_slave",10); slave start; #hope this is long enough for I/O thread to fetch over 16K relay log data sleep 1; select release_lock("hold_slave"); unlock tables; connection master; create table t2(id int); insert into t2 values(connection_id()); save_master_pos; connection master1; #avoid generating result create temporary table t1_temp(n int); Loading @@ -60,7 +77,7 @@ reap; connection slave; sync_with_master ; #give the slave a chance to exit sleep 0.5; wait_for_slave_to_stop; # The following test can't be done because the result of Pos will differ # on different computers Loading
mysys/mf_iocache.c +1 −0 Original line number Diff line number Diff line Loading @@ -823,6 +823,7 @@ int my_b_append(register IO_CACHE *info, const byte *Buffer, uint Count) } Count-=length; Buffer+=length; info->end_of_file+=length; } end: Loading
sql/slave.cc +1 −1 Original line number Diff line number Diff line Loading @@ -1999,7 +1999,7 @@ static int queue_old_event(MASTER_INFO* mi, const char* buf, mi->master_log_pos += event_len; if (unlikely(processed_stop_event)) mi->ignore_stop_event=1; pthread_mutex_lock(&mi->data_lock); pthread_mutex_unlock(&mi->data_lock); return 0; } Loading