Loading mysql-test/lib/mtr_process.pl +13 −4 Original line number Diff line number Diff line Loading @@ -880,19 +880,28 @@ sub mtr_kill_processes ($) { sub mtr_kill_process ($$$$) { my $pid= shift; my $signal= shift; my $retries= shift; my $total_retries= shift; my $timeout= shift; while (1) for (my $cur_attempt= 1; $cur_attempt <= $total_retries; ++$cur_attempt) { mtr_debug("Sending $signal to $pid..."); kill($signal, $pid); last unless kill (0, $pid) and $retries--; unless (kill (0, $pid)) { mtr_debug("Process $pid died."); return; } mtr_debug("Sleep $timeout second waiting for processes to die"); mtr_debug("Sleeping $timeout second(s) waiting for processes to die..."); sleep($timeout); } mtr_debug("Process $pid is still alive after $total_retries " . "of sending signal $signal."); } ############################################################################## Loading mysql-test/mysql-test-run.pl +48 −6 Original line number Diff line number Diff line Loading @@ -3120,22 +3120,58 @@ sub im_stop($) { # Try graceful shutdown. mtr_debug("IM-main pid: $instance_manager->{'pid'}"); mtr_debug("Stopping IM-main..."); mtr_kill_process($instance_manager->{'pid'}, 'TERM', 10, 1); # If necessary, wait for angel process to die. if (defined $instance_manager->{'angel_pid'}) { mtr_debug("IM-angel pid: $instance_manager->{'angel_pid'}"); mtr_debug("Waiting for IM-angel to die..."); my $total_attempts= 10; for (my $cur_attempt=1; $cur_attempt <= $total_attempts; ++$cur_attempt) { unless (kill (0, $instance_manager->{'angel_pid'})) { mtr_debug("IM-angel died."); last; } sleep(1); } } # Check that all processes died. my $clean_shutdown= 0; while (1) { last if kill (0, $instance_manager->{'pid'}); if (kill (0, $instance_manager->{'pid'})) { mtr_debug("IM-main is still alive."); last; } last if (defined $instance_manager->{'angel_pid'}) && kill (0, $instance_manager->{'angel_pid'}); if (defined $instance_manager->{'angel_pid'} && kill (0, $instance_manager->{'angel_pid'})) { mtr_debug("IM-angel is still alive."); last; } foreach my $pid (@mysqld_pids) { last if kill (0, $pid); if (kill (0, $pid)) { mtr_debug("Guarded mysqld ($pid) is still alive."); last; } } $clean_shutdown= 1; Loading @@ -3146,15 +3182,21 @@ sub im_stop($) { unless ($clean_shutdown) { if (defined $instance_manager->{'angel_pid'}) { mtr_debug("Killing IM-angel..."); mtr_kill_process($instance_manager->{'angel_pid'}, 'KILL', 10, 1) if defined $instance_manager->{'angel_pid'}; } mtr_debug("Killing IM-main..."); mtr_kill_process($instance_manager->{'pid'}, 'KILL', 10, 1); # Shutdown managed mysqld-processes. Some of them may be nonguarded, so IM # will not stop them on shutdown. So, we should firstly try to end them # legally. mtr_debug("Killing guarded mysqld(s)..."); mtr_kill_processes(\@mysqld_pids); # Complain in error log so that a warning will be shown. Loading mysql-test/r/im_daemon_life_cycle.result +1 −0 Original line number Diff line number Diff line Success: the process has been started. SHOW INSTANCES; instance_name state mysqld1 online Loading mysql-test/r/im_life_cycle.result +8 −26 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ -------------------------------------------------------------------- -- 1.1.1. -------------------------------------------------------------------- Success: the process has been started. SHOW INSTANCES; instance_name state mysqld1 online Loading @@ -11,10 +12,7 @@ mysqld2 offline -- 1.1.2. -------------------------------------------------------------------- START INSTANCE mysqld2; SHOW INSTANCES; instance_name state mysqld1 online mysqld2 online Success: the process has been started. SHOW VARIABLES LIKE 'port'; Variable_name Value port IM_MYSQLD2_PORT Loading @@ -23,16 +21,7 @@ port IM_MYSQLD2_PORT -- 1.1.3. -------------------------------------------------------------------- STOP INSTANCE mysqld2; SHOW INSTANCES; instance_name state mysqld1 online mysqld2 offline SHOW INSTANCE STATUS mysqld1; instance_name state version_number version mysqld_compatible mysqld1 online VERSION_NUMBER VERSION no SHOW INSTANCE STATUS mysqld2; instance_name state version_number version mysqld_compatible mysqld2 offline VERSION_NUMBER VERSION no Success: the process has been stopped. -------------------------------------------------------------------- -- 1.1.4. Loading @@ -58,26 +47,19 @@ mysqld2 offline Killing the process... Sleeping... Success: the process was restarted. -------------------------------------------------------------------- -- 1.1.7. -------------------------------------------------------------------- SHOW INSTANCES; instance_name state mysqld1 online mysqld2 offline -------------------------------------------------------------------- -- 1.1.7. -------------------------------------------------------------------- START INSTANCE mysqld2; SHOW INSTANCES; instance_name state mysqld1 online mysqld2 online Success: the process has been started. Killing the process... Sleeping... Success: the process was killed. SHOW INSTANCES; instance_name state mysqld1 online mysqld2 offline -------------------------------------------------------------------- -- 1.1.8. Loading mysql-test/r/im_utils.result +3 −0 Original line number Diff line number Diff line Success: the process has been started. SHOW INSTANCES; instance_name state mysqld1 online Loading Loading @@ -42,7 +43,9 @@ skip-ndbcluster VALUE nonguarded VALUE log-output VALUE START INSTANCE mysqld2; Success: the process has been started. STOP INSTANCE mysqld2; Success: the process has been stopped. SHOW mysqld1 LOG FILES; Logfile Path File size ERROR LOG PATH FILE_SIZE Loading Loading
mysql-test/lib/mtr_process.pl +13 −4 Original line number Diff line number Diff line Loading @@ -880,19 +880,28 @@ sub mtr_kill_processes ($) { sub mtr_kill_process ($$$$) { my $pid= shift; my $signal= shift; my $retries= shift; my $total_retries= shift; my $timeout= shift; while (1) for (my $cur_attempt= 1; $cur_attempt <= $total_retries; ++$cur_attempt) { mtr_debug("Sending $signal to $pid..."); kill($signal, $pid); last unless kill (0, $pid) and $retries--; unless (kill (0, $pid)) { mtr_debug("Process $pid died."); return; } mtr_debug("Sleep $timeout second waiting for processes to die"); mtr_debug("Sleeping $timeout second(s) waiting for processes to die..."); sleep($timeout); } mtr_debug("Process $pid is still alive after $total_retries " . "of sending signal $signal."); } ############################################################################## Loading
mysql-test/mysql-test-run.pl +48 −6 Original line number Diff line number Diff line Loading @@ -3120,22 +3120,58 @@ sub im_stop($) { # Try graceful shutdown. mtr_debug("IM-main pid: $instance_manager->{'pid'}"); mtr_debug("Stopping IM-main..."); mtr_kill_process($instance_manager->{'pid'}, 'TERM', 10, 1); # If necessary, wait for angel process to die. if (defined $instance_manager->{'angel_pid'}) { mtr_debug("IM-angel pid: $instance_manager->{'angel_pid'}"); mtr_debug("Waiting for IM-angel to die..."); my $total_attempts= 10; for (my $cur_attempt=1; $cur_attempt <= $total_attempts; ++$cur_attempt) { unless (kill (0, $instance_manager->{'angel_pid'})) { mtr_debug("IM-angel died."); last; } sleep(1); } } # Check that all processes died. my $clean_shutdown= 0; while (1) { last if kill (0, $instance_manager->{'pid'}); if (kill (0, $instance_manager->{'pid'})) { mtr_debug("IM-main is still alive."); last; } last if (defined $instance_manager->{'angel_pid'}) && kill (0, $instance_manager->{'angel_pid'}); if (defined $instance_manager->{'angel_pid'} && kill (0, $instance_manager->{'angel_pid'})) { mtr_debug("IM-angel is still alive."); last; } foreach my $pid (@mysqld_pids) { last if kill (0, $pid); if (kill (0, $pid)) { mtr_debug("Guarded mysqld ($pid) is still alive."); last; } } $clean_shutdown= 1; Loading @@ -3146,15 +3182,21 @@ sub im_stop($) { unless ($clean_shutdown) { if (defined $instance_manager->{'angel_pid'}) { mtr_debug("Killing IM-angel..."); mtr_kill_process($instance_manager->{'angel_pid'}, 'KILL', 10, 1) if defined $instance_manager->{'angel_pid'}; } mtr_debug("Killing IM-main..."); mtr_kill_process($instance_manager->{'pid'}, 'KILL', 10, 1); # Shutdown managed mysqld-processes. Some of them may be nonguarded, so IM # will not stop them on shutdown. So, we should firstly try to end them # legally. mtr_debug("Killing guarded mysqld(s)..."); mtr_kill_processes(\@mysqld_pids); # Complain in error log so that a warning will be shown. Loading
mysql-test/r/im_daemon_life_cycle.result +1 −0 Original line number Diff line number Diff line Success: the process has been started. SHOW INSTANCES; instance_name state mysqld1 online Loading
mysql-test/r/im_life_cycle.result +8 −26 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ -------------------------------------------------------------------- -- 1.1.1. -------------------------------------------------------------------- Success: the process has been started. SHOW INSTANCES; instance_name state mysqld1 online Loading @@ -11,10 +12,7 @@ mysqld2 offline -- 1.1.2. -------------------------------------------------------------------- START INSTANCE mysqld2; SHOW INSTANCES; instance_name state mysqld1 online mysqld2 online Success: the process has been started. SHOW VARIABLES LIKE 'port'; Variable_name Value port IM_MYSQLD2_PORT Loading @@ -23,16 +21,7 @@ port IM_MYSQLD2_PORT -- 1.1.3. -------------------------------------------------------------------- STOP INSTANCE mysqld2; SHOW INSTANCES; instance_name state mysqld1 online mysqld2 offline SHOW INSTANCE STATUS mysqld1; instance_name state version_number version mysqld_compatible mysqld1 online VERSION_NUMBER VERSION no SHOW INSTANCE STATUS mysqld2; instance_name state version_number version mysqld_compatible mysqld2 offline VERSION_NUMBER VERSION no Success: the process has been stopped. -------------------------------------------------------------------- -- 1.1.4. Loading @@ -58,26 +47,19 @@ mysqld2 offline Killing the process... Sleeping... Success: the process was restarted. -------------------------------------------------------------------- -- 1.1.7. -------------------------------------------------------------------- SHOW INSTANCES; instance_name state mysqld1 online mysqld2 offline -------------------------------------------------------------------- -- 1.1.7. -------------------------------------------------------------------- START INSTANCE mysqld2; SHOW INSTANCES; instance_name state mysqld1 online mysqld2 online Success: the process has been started. Killing the process... Sleeping... Success: the process was killed. SHOW INSTANCES; instance_name state mysqld1 online mysqld2 offline -------------------------------------------------------------------- -- 1.1.8. Loading
mysql-test/r/im_utils.result +3 −0 Original line number Diff line number Diff line Success: the process has been started. SHOW INSTANCES; instance_name state mysqld1 online Loading Loading @@ -42,7 +43,9 @@ skip-ndbcluster VALUE nonguarded VALUE log-output VALUE START INSTANCE mysqld2; Success: the process has been started. STOP INSTANCE mysqld2; Success: the process has been stopped. SHOW mysqld1 LOG FILES; Logfile Path File size ERROR LOG PATH FILE_SIZE Loading