Server IP : 104.21.38.3 / Your IP : 172.71.81.190 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 : |
################################################################################ # Verify following auto_increment behaviours: # # Test: # 0. This test starts with 4 non-started members. # 1. Check the defaults of group_replication_auto_increment_increment, # auto_increment_increment and auto_increment_offset. # 2. Check that the value of group_replication_auto_increment_increment # can be set before GR start, but its effects on # auto_increment_increment and auto_increment_offset do not happen. # 3. Check that the effects of group_replication_auto_increment_increment # on auto_increment_increment and auto_increment_offset happen on # starting GR. # 4. When the number of members is bigger than the auto_increment_increment # value, an error is logged. # 5. When auto_increment_increment and auto_increment_offset are not equal to 1, # group_replication should not update their value on START and STOP. # 6. When auto_increment_increment and auto_increment_offset are equal to 1, # then verify if plugin on start set auto_increment_increment variable # equal to group_replication_auto_increment_increment value. # 7. When group_replication is stopped verify that plugin reset # auto_increment_increment and auto_increment_offset values to 1. # 8. Verify start/stop group_replication plugin doesn't affect setting # auto_increment_increment from group_replication_auto_increment_increment # value. # 9. Verify server restart doesn't affect setting auto_increment_increment from # group_replication_auto_increment_increment value. # 10. Verify group_replication_auto_increment_increment can't be set when # group_replication plugin is running. # 11. Validate that when user tries to set invalid values a # error is thrown. # 12. Clean up. ################################################################################ --source include/big_test.inc --source ../inc/have_group_replication_plugin.inc --source include/force_restart.inc --let $rpl_skip_group_replication_start= 1 --let $rpl_server_count= 4 --source ../inc/group_replication.inc --connection server1 --source ../inc/start_and_bootstrap_group_replication.inc --connection server3 --source include/start_group_replication.inc --connection server4 --source include/start_group_replication.inc # Use server2 so that we can set # group_replication_auto_increment_increment-slave.opt --connection server2 # changing GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT for server2 # and so storing it only for server2 --let $_init_auto_increment= `SELECT @@GLOBAL.GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT` --echo ####################################################################### --echo # 1. Check the defaults of group_replication_auto_increment_increment, --echo # auto_increment_increment and auto_increment_offset. --echo ####################################################################### --let $assert_text= The default value of group_replication_auto_increment_increment for server2 should be 7 --let $assert_cond= [SELECT @@GLOBAL.group_replication_auto_increment_increment] = 7 --source include/assert.inc --let $assert_text= The default value of auto_increment_increment for server2 should be 1 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 1 --source include/assert.inc --let $assert_text= The default value of auto_increment_offset for server2 should be 1 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 1 --source include/assert.inc --echo ####################################################################### --echo # 2. Check that the value of group_replication_auto_increment_increment --echo # can be set before GR start, but its effects on --echo # auto_increment_increment and auto_increment_offset do not happen. --echo ####################################################################### SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= 3; --let $assert_text= The value of group_replication_auto_increment_increment is set to 3 --let $assert_cond= [SELECT @@GLOBAL.group_replication_auto_increment_increment] = 3 --source include/assert.inc --let $assert_text= The value of auto_increment_increment is not affected --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 1 --source include/assert.inc --let $assert_text= The value of auto_increment_offset is not affected --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 1 --source include/assert.inc --source include/start_group_replication.inc --echo ######################################################################### --echo # 3. Check that the effects of group_replication_auto_increment_increment --echo # on auto_increment_increment and auto_increment_offset happen on --echo # starting GR. --echo ######################################################################### --let $assert_text= The value of group_replication_auto_increment_increment is still 3 --let $assert_cond= [SELECT @@GLOBAL.group_replication_auto_increment_increment] = 3 --source include/assert.inc --let $assert_text= The value of auto_increment_increment is set to 3 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 3 --source include/assert.inc --let $assert_text= The value of auto_increment_offset is set to 2 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 2 --source include/assert.inc --echo ############################################################ --echo # 4. When the number of members is bigger than --echo # the auto_increment_increment value, an error is logged. --echo ############################################################ --replace_regex /[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.[0-9][0-9][0-9][0-9][0-9][0-9][-+Z][0-9:]* *[0-9]* *\[/DATE_TIME [/ --let $grep_file=$MYSQLTEST_VARDIR/tmp/group_replication_auto_increment_increment_log.err --let $grep_pattern=Group contains 4 members which is greater than auto_increment_increment value of 3. This can lead to an higher rate of transactional aborts. --source include/grep_pattern.inc --echo ############################################################ --echo # 5. When auto_increment_increment and auto_increment_offset --echo # not set to default value --echo # i.e. auto_increment_increment= 1 --echo # auto_increment_offset= 1 --echo # group_replication should not update their value. --echo ############################################################ --source include/stop_group_replication.inc SET GLOBAL AUTO_INCREMENT_INCREMENT= 5; SET GLOBAL AUTO_INCREMENT_OFFSET= 5; --source include/start_group_replication.inc --let $assert_text= The value of auto_increment_increment for server2 should be 5 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 5 --source include/assert.inc --let $assert_text= The value of auto_increment_offset for server2 should be 5 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 5 --source include/assert.inc --source include/stop_group_replication.inc --let $assert_text= The value of auto_increment_increment for server2 should be 5 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 5 --source include/assert.inc --let $assert_text= The value of auto_increment_offset for server2 should be 5 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 5 --source include/assert.inc --echo ############################################################ --echo # 6. When auto_increment_increment and auto_increment_offset are equal --echo # to 1, then verify if plugin on start set auto_increment_increment --echo # variable equal to group_replication_auto_increment_increment value. --echo ############################################################ SET GLOBAL AUTO_INCREMENT_INCREMENT= 1; SET GLOBAL AUTO_INCREMENT_OFFSET= 1; SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= 4; --source include/start_group_replication.inc --let $assert_text= The value of auto_increment_increment for server2 should be 4 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 4 --source include/assert.inc --let $assert_text= The value of auto_increment_offset for server2 should be 2 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 2 --source include/assert.inc --echo ############################################################ --echo # 7. When group_replication is stopped verify that plugin reset --echo # auto_increment_increment and auto_increment_offset values to 1. --echo ############################################################ --source include/stop_group_replication.inc --let $assert_text= The value of auto_increment_increment for server2 should be 1 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 1 --source include/assert.inc --let $assert_text= The value of auto_increment_offset for server2 should be 1 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 1 --source include/assert.inc # Set GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT to 1, so that it doesn't # affect when starting group_replication again. SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= 1; --echo ############################################################ --echo # 8. Verify start/stop group_replication plugin doesn't affect --echo # setting auto_increment_increment from --echo # group_replication_auto_increment_increment value. --echo ############################################################ --source include/start_group_replication.inc --let $assert_text= The value of auto_increment_increment for server2 should be 1 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 1 --source include/assert.inc --let $assert_text= The value of auto_increment_offset for server2 should be 2 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 2 --source include/assert.inc --source include/stop_group_replication.inc SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= 9; --source include/start_group_replication.inc --let $assert_text= The value of auto_increment_increment for server2 should be 9 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 9 --source include/assert.inc --let $assert_text= The value of auto_increment_offset for server2 should be 2 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 2 --source include/assert.inc --echo ############################################################ --echo # 9. Verify server restart doesn't affect setting --echo # auto_increment_increment from --echo # group_replication_auto_increment_increment value. --echo ############################################################ --source include/stop_group_replication.inc --let $assert_text= The value of auto_increment_increment for server2 should be 1 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 1 --source include/assert.inc --let $assert_text= The value of auto_increment_offset for server2 should be 1 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 1 --source include/assert.inc # Set GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT to 1, so that it doesn't # affect when starting group_replication again. SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= 1; --source include/start_group_replication.inc --let $assert_text= The value of auto_increment_increment for server2 should be 1 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 1 --source include/assert.inc --let $assert_text= The value of auto_increment_offset for server2 should be 2 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 2 --source include/assert.inc # restart server --let $allow_rpl_inited= 1 --let $_group_replication_local_address= `SELECT @@GLOBAL.group_replication_local_address` --let $_group_replication_group_seeds= `SELECT @@GLOBAL.group_replication_group_seeds` --let $_group_replication_group_whitelist= `SELECT @@GLOBAL.group_replication_ip_whitelist` --let $restart_parameters=restart:--group_replication_local_address=$_group_replication_local_address --group_replication_group_seeds=$_group_replication_group_seeds --group_replication_ip_whitelist=$_group_replication_group_whitelist --replace_result $_group_replication_local_address GROUP_REPLICATION_LOCAL_ADDRESS $_group_replication_group_seeds GROUP_REPLICATION_GROUP_SEEDS $_group_replication_group_whitelist GROUP_REPLICATION_GROUP_WHITELIST --source include/restart_mysqld.inc # Needed as we are not using rpl_restart_server.inc --let $rpl_server_number= 2 --source include/rpl_reconnect.inc SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= 9; --source include/start_group_replication.inc --let $assert_text= The value of auto_increment_increment for server2 should be 9 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_increment] = 9 --source include/assert.inc --let $assert_text= The value of auto_increment_offset for server2 should be 2 --let $assert_cond= [SELECT @@GLOBAL.auto_increment_offset] = 2 --source include/assert.inc --echo ############################################################ --echo # 10. Verify group_replication_auto_increment_increment can't be set --echo # when group_replication plugin is running. --echo ############################################################ --error ER_GROUP_REPLICATION_RUNNING SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= 9; --echo ############################################################ --echo # 11. Validate that when user tries to set invalid values a --echo # error is thrown. --echo ############################################################ --connection server2 --source include/stop_group_replication.inc --error ER_WRONG_VALUE_FOR_VAR SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= -1; --error ER_WRONG_VALUE_FOR_VAR SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= 65536; --error ER_WRONG_VALUE_FOR_VAR SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= 0; --error ER_WRONG_TYPE_FOR_VAR SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= 'a'; --echo ############################################################ --echo # 12. clean up and reset auto_increment variables value --echo ############################################################ --eval SET GLOBAL GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT= $_init_auto_increment --source ../inc/group_replication_end.inc