Server IP : 104.21.38.3 / Your IP : 172.70.208.31 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/mysql-test/suite/large_tests/t/ |
Upload File : |
# # Testing reconnecting by slave as specified by `slave_net_timeout' # # Bug #50296 Slave reconnects earlier than the prescribed slave_net_timeout value # --source include/master-slave.inc # save global env connection master; set @save_general_log = @@global.general_log; set @save_log_output = @@global.log_output; connection slave; set @save_slave_net_timeout = @@global.slave_net_timeout; connection master; set @@global.general_log = ON; set @@global.log_output = 'table,file'; connection slave; --source include/stop_slave.inc # # if heartbeat is disabled then reconnecting to the idle master # should happen with `slave_net_timeout' period. # Since it's the real time that is measured, `slave_net_timeout' # merely guarantees that reconnecting can *not* happen earlier of a value specified. # That is there can't an exact estimate for how many time it will happen. # # The following lines verify that having idle master # for more than 2 * slave_net_timeout seconds and # slave.net_read_timeout < slave_net_timeout # won't cause reconnecting by the slave within at least # slave_net_timeout interval. # --replace_result $MASTER_MYPORT MASTER_PORT --replace_column 2 #### eval change master to master_host = '127.0.0.1',master_port = $MASTER_MYPORT, master_user = 'root', master_heartbeat_period = 0; set @@global.slave_net_timeout = @@global.net_read_timeout * 2; let $idle_time=`select @@global.slave_net_timeout * 2`; let $slave_net_timeout = `select @@global.slave_net_timeout`; --source include/start_slave.inc --disable_query_log --disable_result_log eval select 'master is idle for ', sleep($idle_time); --enable_result_log --enable_query_log # querying general-log connection master; # In particular the last reconnection timestamp must be greater or equal to # the previous one + slave_net_timeout --let $ts_last= `select time_to_sec(event_time) from (select event_time from mysql.general_log as t_1 where command_type like 'Connect' order by event_time desc limit 2) as t_2 order by event_time desc limit 1` --let $ts_prev= `select time_to_sec(event_time) from (select event_time from mysql.general_log as t_1 where command_type like 'Connect' order by event_time desc limit 2) as t_2 order by event_time asc limit 1` --let $timeout= $idle_time + 10 while ($timeout) { --let $ts_last= `select time_to_sec(event_time) from (select event_time from mysql.general_log as t_1 where command_type like 'Connect' order by event_time desc limit 2) as t_2 order by event_time desc limit 1` --let $ts_flag= `select $ts_last-$ts_prev>=$slave_net_timeout` if($ts_flag) { --let $timeout=1 } --dec $timeout --sleep 1 } --let $assert_cond= $ts_flag=1 --let $assert_text= time between last reconnection and the reconnection before that should be >= slave_net_timeout --source include/assert.inc # cleanup # restore global env connection master; set @@global.general_log = @save_general_log; set @@global.log_output = @save_log_output; connection slave; set @@global.slave_net_timeout = @save_slave_net_timeout; --source include/rpl_end.inc