The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=6cd0117bdb2c4b90cb31f90712431fbe125d9755
commit 6cd0117bdb2c4b90cb31f90712431fbe125d9755 Author: Konstantin Belousov <k...@freebsd.org> AuthorDate: 2025-06-08 07:31:28 +0000 Commit: Konstantin Belousov <k...@freebsd.org> CommitDate: 2025-06-12 04:28:27 +0000 exit1(): Ensure that SIGCHLD from reparented child is queued to reaper (cherry picked from commit 8dda34d0ef79d0d247b3487ae0499bdf12c9209e) --- sys/kern/kern_sig.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index cc0aecbc7756..0291c2647da6 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -3751,7 +3751,14 @@ sigparent(struct proc *p, int reason, int status) if (KSI_ONQ(p->p_ksi)) return; } - pksignal(p->p_pptr, SIGCHLD, p->p_ksi); + + /* + * Do not consume p_ksi if parent is zombie, since signal is + * dropped immediately. Instead, keep it since it might be + * useful for reaper. + */ + if (p->p_pptr->p_state != PRS_ZOMBIE) + pksignal(p->p_pptr, SIGCHLD, p->p_ksi); } static void