Server IP : 172.67.216.182 / Your IP : 172.70.189.106 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 : |
################################################################################ # This test checks that # 1. The delayed thread is only running when the server starts on boot # 2. Connections are possible when the server enters read mode but it is still # connecting # # To test this: # 0. The test requires one stopped server. # 1. Check that the delayed thread is not running when the without start on boot # 2. Start group replication. Check that the delayed thread is still not there # 3. Restart server with start on boot. Check that # 3.1.The read mode is one when connections are allowed # 3.2.There is a delayed thread running # 3.3 The join is stuck on debug so the member is still OFFLINE. # 4. Execute a parallel start request. Check it will fail when we unblock # 5. Unblock join. Wait for the member to come ONLINE. # 6. Clean up. ################################################################################ --source include/big_test.inc --source include/have_debug_sync.inc --source ../inc/have_group_replication_plugin.inc --let $rpl_skip_group_replication_start= 1 --source ../inc/group_replication.inc --let $rpl_connection_name= server_1 --source include/rpl_connection.inc SET @@GLOBAL.DEBUG= @debug_save; --echo # --echo # 1. Check that the delayed thread is not running --echo # --let $assert_text= The delayed initialization thread is not running --let $assert_cond= "[SELECT COUNT(*) FROM performance_schema.threads WHERE NAME = \"thread/group_rpl/THD_delayed_initialization\"]" = 0; --source include/assert.inc --echo # --echo # 2. Start group replication. Check the thread is still not there --echo # --source ../inc/start_and_bootstrap_group_replication.inc --let $assert_text= The delayed initialization thread is not running after start --let $assert_cond= "[SELECT COUNT(*) FROM performance_schema.threads WHERE NAME = \"thread/group_rpl/THD_delayed_initialization\"]" = 0; --source include/assert.inc --echo # --echo # 3. Restart the server with start on boot enabled --echo # --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_start_on_boot=1 --group-replication-group-name=$group_replication_group_name --group_replication_bootstrap_group=1 --loose-debug="+d,group_replication_before_joining_the_group" --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_name GROUP_REPLICATION_GROUP_NAME $_group_replication_group_whitelist GROUP_REPLICATION_GROUP_WHITELIST --source include/restart_mysqld.inc --let $rpl_server_number= 1 --source include/rpl_reconnect.inc --echo # --echo # 3.1 Check the super read only mode is enabled --echo # --let $assert_text= The super_read_only mode should be 1 here. --let $assert_cond= "[SELECT @@GLOBAL.super_read_only]" = 1; --source include/assert.inc --echo # --echo # 3.2 There is a delayed initialization thread running --echo # --let $assert_text= The delayed initialization thread is running after boot --let $assert_cond= "[SELECT COUNT(*) FROM performance_schema.threads WHERE NAME = \"thread/group_rpl/THD_delayed_initialization\"]" = 1; --source include/assert.inc --echo # --echo # 3.3 The member is OFFLINE as the join is stuck --echo # --echo # Asserting that the member here is offline. --let $group_replication_member_state= OFFLINE --source ../inc/gr_wait_for_member_state.inc --echo # --echo # 4. Execute a parallel start request that will fail after join --echo # --let $rpl_connection_name= server_1 --source include/rpl_connection.inc --send START GROUP_REPLICATION; --echo # --echo # 5. Unblock. The above start should fail and the server should go ONLINE --echo # --let $rpl_connection_name= server1 --source include/rpl_connection.inc SET DEBUG_SYNC= "now SIGNAL signal.continue_group_join"; --echo # Wait for the server to be ONLINE --let $group_replication_member_state= ONLINE --source ../inc/gr_wait_for_member_state.inc --let $rpl_connection_name= server_1 --source include/rpl_connection.inc --error ER_GROUP_REPLICATION_RUNNING --reap --echo # --echo # Cleanup --echo # SET @@GLOBAL.DEBUG= @debug_save; --source ../inc/group_replication_end.inc