Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/tests/lib/libc/sys Do not fail when trying to kill a dying p...



details:   https://anonhg.NetBSD.org/src/rev/c48ee356bc1c
branches:  trunk
changeset: 932557:c48ee356bc1c
user:      kamil <kamil%NetBSD.org@localhost>
date:      Mon May 11 11:03:15 2020 +0000

description:
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.

diffstat:

 tests/lib/libc/sys/t_ptrace_register_wait.h |  9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diffs (23 lines):

diff -r 34188226600b -r c48ee356bc1c tests/lib/libc/sys/t_ptrace_register_wait.h
--- a/tests/lib/libc/sys/t_ptrace_register_wait.h       Mon May 11 10:34:37 2020 +0000
+++ b/tests/lib/libc/sys/t_ptrace_register_wait.h       Mon May 11 11:03:15 2020 +0000
@@ -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 @@
        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),



Home | Main Index | Thread Index | Old Index