From 97aaa339ed3cfa22e73f2dcbd0bac26b00f3a0e3 Mon Sep 17 00:00:00 2001 From: Colin Ian King Date: Tue, 19 May 2020 09:19:04 +0100 Subject: [PATCH 10/28] core-shim: rework waitpid again, terminate child on EINTR (LP: #1879447) The parent may receive a EINTR on a SIGALRM so send this to the child. If it hasn't died after a while send the child SIGKILL to force termination. Signed-off-by: Colin Ian King --- core-shim.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core-shim.c b/core-shim.c index a44f6cf1b923..62c00ec991ef 100644 --- a/core-shim.c +++ b/core-shim.c @@ -1188,10 +1188,11 @@ pid_t shim_waitpid(pid_t pid, int *wstatus, int options) * Retry if EINTR unless we've have 100 * consecutive EINTRs then give up. */ - if (!keep_stressing_flag()) - break; - if (count++ > 100) - break; + if (!keep_stressing_flag()) { + kill(pid, SIGALRM); + if (count++ > 100) + kill(pid, SIGKILL); + } } return ret; } -- 2.21.3