403Webshell
Server IP : 172.67.216.182  /  Your IP : 162.158.170.54
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/rpl/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test
source include/not_windows.inc;
--source include/not_group_replication_plugin.inc
source include/not_gtid_enabled.inc;
source include/master-slave.inc;

#
# BUG#28421 Infinite loop on slave relay logs
# 
# That, manually deleteing one or more entries from 'master-bin.index', will
# cause master infinitely loop to send one binlog file.
# 
# Manually changing index file is a illegal action, so when this happen, we
# send a fatal error to slave and close the dump session.

FLUSH LOGS;
# Now, 2 entries in index file.
# ./master-bin.000001
# ./master-bin.000002

CREATE TABLE t1(c1 INT);
# Now, the current dump file(master-bin.000002) is the second line of index
# file
--source include/sync_slave_sql_with_master.inc
# Now, all events has been replicate to slave. As current dump file
# (master-bin.000002) is the last binlog file, so master is waiting for new
# events.

connection master;
# Delete './master-bin.000001' from index file.
let $MYSQLD_DATADIR= `SELECT @@DATADIR`;
let $file= $MYSQLD_DATADIR/master-bin.index;
source include/truncate_file.inc;

if (`SELECT CONVERT(@@VERSION_COMPILE_OS USING latin1) NOT IN ('Win32', 'Win64', 'Windows')`)
{
append_file $MYSQLD_DATADIR/master-bin.index;
./master-bin.000002
EOF
sleep 0.00000001;
}

if (`SELECT CONVERT(@@VERSION_COMPILE_OS USING latin1) IN ('Win32', 'Win64', 'Windows')`)
{
append_file $MYSQLD_DATADIR/master-bin.index;
.\master-bin.000002
EOF
sleep 0.00000001;
}

# Now, only 1 entry in index file.  ./master-bin.000002

# Generate master-bin.000003, but it is in the second line.
FLUSH LOGS;
# Now, 2 entries in index file.
# ./master-bin.000002
# ./master-bin.000003

# Now, master know that new binlog file(master-bin.000003) has been generated.
# It expects that the new binlog file is in third line of index file, but
# there is no third line in index file. It is so strange that master sends an
# error to slave. 
call mtr.add_suppression('Got fatal error 1236 from master when reading data from binary log: .*could not find next log');
connection slave;
# 1236 = ER_MASTER_FATAL_ERROR_READING_BINLOG
--let $slave_io_errno= 1236
--let $show_slave_io_error= 1
# Mask line numbers
--let $slave_io_error_replace= / at [0-9]*/ at XXX/
--source include/wait_for_slave_io_error.inc

connection master;

source include/truncate_file.inc;

if (`SELECT CONVERT(@@VERSION_COMPILE_OS USING latin1) NOT IN ('Win32', 'Win64', 'Windows')`)
{
append_file $MYSQLD_DATADIR/master-bin.index;
./master-bin.000001
./master-bin.000002
./master-bin.000003
EOF
sleep 0.00000001;
}

if (`SELECT CONVERT(@@VERSION_COMPILE_OS USING latin1) IN ('Win32', 'Win64', 'Windows')`)
{
append_file $MYSQLD_DATADIR/master-bin.index;
.\master-bin.000001
.\master-bin.000002
.\master-bin.000003
EOF
sleep 0.00000001;
}

CREATE TABLE t2(c1 INT);
FLUSH LOGS;
CREATE TABLE t3(c1 INT);
FLUSH LOGS;
CREATE TABLE t4(c1 INT);

connection slave;
START SLAVE IO_THREAD;
source include/wait_for_slave_io_to_start.inc;

connection master;
--source include/sync_slave_sql_with_master.inc
SHOW TABLES;

connection master;
DROP TABLE t1, t2, t3, t4;
--source include/sync_slave_sql_with_master.inc

--echo
--echo # BUG#21437 server_errno=29 error message flood mysqld error log
--echo # --------------------------------------------------------------------------
--echo # This test verifies if the ER_MASTER_FATAL_ERROR_READING_BINLOG which
--echo # insteads of EE_FILENOTFOUND error is sent to slave, so that the slave
--echo # I/O thread stops immediately.

--source include/rpl_reset.inc
connection master;
--echo [ on master ]
call mtr.add_suppression("Got fatal error 1236 from master when reading data from binary log:");
let $MASTER_DATADIR= `SELECT @@DATADIR`;
CREATE TABLE t1(c1 int);
DROP TABLE t1;

FLUSH LOGS;

CREATE TABLE t2(c1 int);
DROP TABLE t2;
--source include/sync_slave_sql_with_master.inc
--echo [ on slave ]
source include/stop_slave.inc;

connection master;
--echo [ on master ]
--echo # This operation will result in error EE_FILENOTFOUND which happens
--echo # when slave IO thread is connecting to master.
move_file $MASTER_DATADIR/master-bin.000001 $MASTER_DATADIR/master-bin.bak;

connection slave;
--echo [ on slave ]
CHANGE MASTER TO master_host='127.0.0.1', master_log_file='master-bin.000001';
START SLAVE IO_THREAD;
--echo # Instead of EE_FILENOTFOUND, ER_MASTER_FATAL_ERROR_READING_BINLOG
--echo # and the specific information are sent to slave.
--let $slave_io_errno= 1236
--let $show_slave_io_error= 1
--source include/wait_for_slave_io_error.inc

connection master;
--echo [ on master ]
--echo # Restore master-bin.000001 file
move_file $MASTER_DATADIR/master-bin.bak $MASTER_DATADIR/master-bin.000001;

connection slave;
--echo [ on slave ]
CHANGE MASTER TO master_host='127.0.0.1', master_log_file='master-bin.000002';
source include/start_slave.inc;

connection master;
--echo [ on master ]
CREATE TABLE t1(c1 INT);
--source include/sync_slave_sql_with_master.inc
--echo [ on slave ]
SELECT * FROM t1;

connection master;
DROP TABLE t1;

--source include/rpl_end.inc


Youez - 2016 - github.com/yon3zu
LinuXploit