diff --git a/src/childinfo.c b/src/childinfo.c index e5184ff8b..1303dd043 100644 --- a/src/childinfo.c +++ b/src/childinfo.c @@ -114,7 +114,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); } } diff --git a/tests/integration/replication.tcl b/tests/integration/replication.tcl index 617b9f78e..4867b5afd 100644 --- a/tests/integration/replication.tcl +++ b/tests/integration/replication.tcl @@ -1013,7 +1013,7 @@ test "diskless replication child being killed is collected" { } {} {external:skip} 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] diff --git a/tests/support/util.tcl b/tests/support/util.tcl index a7332d29c..22774868c 100644 --- a/tests/support/util.tcl +++ b/tests/support/util.tcl @@ -631,6 +631,7 @@ proc process_is_alive pid { if {[catch {exec ps -p $pid} err]} { return 0 } else { + if {[string match "**" $err]} { return 0 } return 1 } }