fixes for fork child exit and test: #11463 (#11499)

Fix a few issues with the recent #11463
* use exitFromChild instead of exit
* test should ignore defunct process since that's what we expect to
  happen for thees child processes when the parent dies.
* fix typo

Co-authored-by: Binbin <binloveplay1314@qq.com>
(cherry picked from commit 4c54528f0f)
This commit is contained in:
Oran Agra 2022-11-12 20:35:34 +02:00
parent 51fa40ff42
commit 4ac3d79bfc
3 changed files with 3 additions and 2 deletions

View File

@ -108,7 +108,7 @@ void sendChildInfoGeneric(childInfoType info_type, size_t keys, double progress,
if (write(server.child_info_pipe[1], &data, wlen) != wlen) {
/* Failed writing to parent, it could have been killed, exit. */
serverLog(LL_WARNING,"Child failed reporting info to parent, exiting. %s", strerror(errno));
exit(1);
exitFromChild(1);
}
}

View File

@ -772,7 +772,7 @@ test "diskless replication child being killed is collected" {
}
foreach mdl {yes no} {
test "replication dies when parent is killed - diskless: $mdl" {
test "replication child dies when parent is killed - diskless: $mdl" {
# when master is killed, make sure the fork child can detect that and exit
start_server {tags {"repl"}} {
set master [srv 0 client]

View File

@ -569,6 +569,7 @@ proc process_is_alive pid {
if {[catch {exec ps -p $pid} err]} {
return 0
} else {
if {[string match "*<defunct>*" $err]} { return 0 }
return 1
}
}