<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 15, 2022 at 8:18 PM Cyril Hrubis <<a href="mailto:chrubis@suse.cz">chrubis@suse.cz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi!<br>
> Processes can stay alive for a short while even after receiving SIGKILL.<br>
> Give the child in subprocess cleanup libtest up to 5 seconds to fully exit<br>
> or change state to zombie before reporting that it was left behind.<br>
> <br>
> Signed-off-by: Martin Doucha <<a href="mailto:mdoucha@suse.cz" target="_blank">mdoucha@suse.cz</a>><br>
> ---<br>
> <br>
> Changes since v1: Report success even if the child gets stuck in zombie state<br>
> <br>
>  lib/newlib_tests/test_children_cleanup.sh | 23 +++++++++++++++++------<br>
>  1 file changed, 17 insertions(+), 6 deletions(-)<br>
> <br>
> diff --git a/lib/newlib_tests/test_children_cleanup.sh b/lib/newlib_tests/test_children_cleanup.sh<br>
> index 4b4e8b2f0..23408c1bc 100755<br>
> --- a/lib/newlib_tests/test_children_cleanup.sh<br>
> +++ b/lib/newlib_tests/test_children_cleanup.sh<br>
> @@ -10,10 +10,21 @@ rm "$TMPFILE"<br>
>  if [ "x$CHILD_PID" = "x" ]; then<br>
>       echo "TFAIL: Child process was not created"<br>
>       exit 1<br>
> -elif ! kill -s 0 $CHILD_PID &>/dev/null; then<br>
> -     echo "TPASS: Child process was cleaned up"<br>
> -     exit 0<br>
> -else<br>
> -     echo "TFAIL: Child process was left behind"<br>
> -     exit 1<br>
>  fi<br>
> +<br>
> +# The child process can stay alive for a short while even after receiving<br>
> +# SIGKILL, especially if the system is under heavy load. Wait up to 5 seconds<br>
> +# for it to fully exit.<br>
> +for i in `seq 6`; do<br>
> +     CHILD_STATE=`sed -ne 's/^State:\s*\([A-Z]\).*$/\1/p' "/proc/$CHILD_PID/status" 2>/dev/null`<br>
> +<br>
> +     if [ ! -e "/proc/$CHILD_PID" ] || [ "x$CHILD_STATE" = "xZ" ]; then<br>
<br>
As long as we have the variable inside the quotes there is no point in<br>
adding the 'x'.<br></blockquote><div><br></div><div class="gmail_default" style="font-size:small">Pushed with a note added and this fix. Thanks~</div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div>