Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
a142a4d9
Commit
a142a4d9
authored
Jun 19, 2006
by
anozdrin@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Small fix for test suite:
- fix for IM stopping routine; - polishing.
parent
2e56e821
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
61 additions
and
10 deletions
+61
-10
mysql-test/lib/mtr_process.pl
mysql-test/lib/mtr_process.pl
+13
-4
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+48
-6
No files found.
mysql-test/lib/mtr_process.pl
View file @
a142a4d9
...
@@ -890,19 +890,28 @@ sub mtr_kill_processes ($) {
...
@@ -890,19 +890,28 @@ sub mtr_kill_processes ($) {
sub
mtr_kill_process
($$$$)
{
sub
mtr_kill_process
($$$$)
{
my
$pid
=
shift
;
my
$pid
=
shift
;
my
$signal
=
shift
;
my
$signal
=
shift
;
my
$retries
=
shift
;
my
$
total_
retries
=
shift
;
my
$timeout
=
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
);
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
("
Sleep
ing
$timeout
second(s) waiting for processes to die...
");
sleep
(
$timeout
);
sleep
(
$timeout
);
}
}
mtr_debug
("
Process
$pid
is still alive after
$total_retries
"
.
"
of sending signal
$signal
.
");
}
}
##############################################################################
##############################################################################
...
...
mysql-test/mysql-test-run.pl
View file @
a142a4d9
...
@@ -2843,22 +2843,58 @@ sub im_stop($) {
...
@@ -2843,22 +2843,58 @@ sub im_stop($) {
# Try graceful shutdown.
# 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
);
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.
# Check that all processes died.
my
$clean_shutdown
=
0
;
my
$clean_shutdown
=
0
;
while
(
1
)
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
'})
&&
if
(
defined
$instance_manager
->
{'
angel_pid
'}
&&
kill
(
0
,
$instance_manager
->
{'
angel_pid
'});
kill
(
0
,
$instance_manager
->
{'
angel_pid
'}))
{
mtr_debug
("
IM-angel is still alive.
");
last
;
}
foreach
my
$pid
(
@mysqld_pids
)
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
;
$clean_shutdown
=
1
;
...
@@ -2869,15 +2905,21 @@ sub im_stop($) {
...
@@ -2869,15 +2905,21 @@ sub im_stop($) {
unless
(
$clean_shutdown
)
unless
(
$clean_shutdown
)
{
{
mtr_kill_process
(
$instance_manager
->
{'
angel_pid
'},
'
KILL
',
10
,
1
)
if
defined
$instance_manager
->
{'
angel_pid
'};
if
(
defined
$instance_manager
->
{'
angel_pid
'})
{
mtr_debug
("
Killing IM-angel...
");
mtr_kill_process
(
$instance_manager
->
{'
angel_pid
'},
'
KILL
',
10
,
1
)
}
mtr_debug
("
Killing IM-main...
");
mtr_kill_process
(
$instance_manager
->
{'
pid
'},
'
KILL
',
10
,
1
);
mtr_kill_process
(
$instance_manager
->
{'
pid
'},
'
KILL
',
10
,
1
);
# Shutdown managed mysqld-processes. Some of them may be nonguarded, so IM
# 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
# will not stop them on shutdown. So, we should firstly try to end them
# legally.
# legally.
mtr_debug
("
Killing guarded mysqld(s)...
");
mtr_kill_processes
(
\
@mysqld_pids
);
mtr_kill_processes
(
\
@mysqld_pids
);
# Complain in error log so that a warning will be shown.
# Complain in error log so that a warning will be shown.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment