Module Name: src Committed By: kamil Date: Mon May 11 11:03:15 UTC 2020
Modified Files: src/tests/lib/libc/sys: t_ptrace_register_wait.h Log Message: Do not fail when trying to kill a dying process A dying process can disappear for a while. Rather than aborting, retry sending SIGKILL to it. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/tests/lib/libc/sys/t_ptrace_register_wait.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/lib/libc/sys/t_ptrace_register_wait.h diff -u src/tests/lib/libc/sys/t_ptrace_register_wait.h:1.1 src/tests/lib/libc/sys/t_ptrace_register_wait.h:1.2 --- src/tests/lib/libc/sys/t_ptrace_register_wait.h:1.1 Mon May 4 20:55:48 2020 +++ src/tests/lib/libc/sys/t_ptrace_register_wait.h Mon May 11 11:03:15 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: t_ptrace_register_wait.h,v 1.1 2020/05/04 20:55:48 kamil Exp $ */ +/* $NetBSD: t_ptrace_register_wait.h,v 1.2 2020/05/11 11:03:15 kamil Exp $ */ /*- * Copyright (c) 2016, 2017, 2018, 2019, 2020 The NetBSD Foundation, Inc. @@ -136,7 +136,12 @@ access_regs(const char *regset, const ch if (strstr(aux, "unaligned") != NULL) { DPRINTF("Before resuming the child process where it left off " "and without signal to be sent\n"); - SYSCALL_REQUIRE(ptrace(PT_KILL, child, NULL, 0) != -1); + for (;;) { + errno = 0; + if (ptrace(PT_KILL, child, NULL, 0) == 0) + break; + ATF_REQUIRE_EQ(errno, ESRCH); + } DPRINTF("Before calling %s() for the child\n", TWAIT_FNAME); TWAIT_REQUIRE_SUCCESS(wpid = TWAIT_GENERIC(child, &status, 0),