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 : |
################################################################################ # 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