1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

selftest: Rework Samba4.pm process termination.

We now double-check the waitpid() result with kill(0, $pid)

We now also send a SIGTERM, then a SIGKILL.

Andrew Bartlett
This commit is contained in:
Andrew Bartlett 2012-03-04 18:32:44 +11:00
parent e495118aab
commit a37990c5c1

View File

@ -1335,16 +1335,33 @@ sub teardown_env($$)
$pid = $envvars->{SAMBA_PID};
my $count = 0;
my $childpid;
until (Samba::cleanup_child($pid, "samba") < 0) {
# This should give it time to write out the gcov data
# This should give it time to write out the gcov data
until ($count > 20) {
if (Samba::cleanup_child($pid, "samba") == -1) {
last;
}
sleep(1);
$count++;
last if $count > 20;
}
if ($count <= 20 && kill(0, $pid) == 0) {
return;
}
kill "TERM", $pid;
until ($count > 20) {
if (Samba::cleanup_child($pid, "samba") == -1) {
last;
}
sleep(1);
$count++;
}
# If it is still around, kill it
if ($count > 20) {
print "server process $pid took more than $count seconds to exit, killing\n";
if ($count > 20 && kill(0, $pid) == 0) {
warn "server process $pid took more than $count seconds to exit, killing\n";
kill 9, $pid;
}