guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 74366285f0241a776b650cae26578c5390c98a3e
Author: Yelninei <[email protected]>
AuthorDate: Sat Dec 13 18:25:23 2025 +0000
gnu: hurd: Prevent zombie processes.
Fixes: shepherd/shepherd#93
* gnu/packages/patches/hurd-proc-zombies.patch: new patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/hurd.scm (hurd): Add patch.
Change-Id: Iddab14fcd487817cde7aa2f7fd047e943d9337d1
Signed-off-by: Ludovic Courtès <[email protected]>
Merges: #4822
---
gnu/local.mk | 1 +
gnu/packages/hurd.scm | 3 ++-
gnu/packages/patches/hurd-proc-zombies.patch | 28 ++++++++++++++++++++++++++++
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 5db831f0af..eac1752680 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1594,6 +1594,7 @@ dist_patch_DATA =
\
%D%/packages/patches/hurd-refcounts-assert.patch \
%D%/packages/patches/hurd-rumpdisk-no-hd.patch \
%D%/packages/patches/hurd-startup.patch \
+ %D%/packages/patches/hurd-proc-zombies.patch \
%D%/packages/patches/hwloc-1-test-btrfs.patch \
%D%/packages/patches/i3lock-blur-fix-build-on-gcc-10.patch \
%D%/packages/patches/i7z-gcc-10.patch \
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 20bbc6c14e..af87700c86 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -344,7 +344,8 @@ Hurd-minimal package which are needed for both glibc and
GCC.")
(inherit (package-source hurd-headers))
(patches (search-patches "hurd-refcounts-assert.patch"
"hurd-rumpdisk-no-hd.patch"
- "hurd-startup.patch"))))
+ "hurd-startup.patch"
+ "hurd-proc-zombies.patch"))))
(version (package-version hurd-headers))
(arguments
`(#:tests? #f ;no "check" target
diff --git a/gnu/packages/patches/hurd-proc-zombies.patch
b/gnu/packages/patches/hurd-proc-zombies.patch
new file mode 100644
index 0000000000..ecc50ec4e4
--- /dev/null
+++ b/gnu/packages/patches/hurd-proc-zombies.patch
@@ -0,0 +1,28 @@
+Upstream status:
https://lists.gnu.org/archive/html/bug-hurd/2025-12/msg00019.html
+
+From 382c796742dad624d958ac283a7fb10960c742b1 Mon Sep 17 00:00:00 2001
+From: Yelninei <[email protected]>
+Date: Sat, 13 Dec 2025 17:55:08 +0000
+Subject: [PATCH] proc: Also check whether the last child is already dead.
+
+* proc/mgt.c (process_has_exited): Repeat check for the last child too.
+---
+ proc/mgt.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/proc/mgt.c b/proc/mgt.c
+index 3f04e2ba..dcb619af 100644
+--- a/proc/mgt.c
++++ b/proc/mgt.c
+@@ -1102,6 +1102,8 @@ process_has_exited (struct proc *p)
+ 1, tp->p_pgrp->pg_pgid,
+ !tp->p_pgrp->pg_orphcnt);
+ tp->p_parent = reparent_to;
++ if (tp->p_dead)
++ isdead = 1;
+
+ /* And now append the lists. */
+ tp->p_sib = reparent_to->p_ochild;
+--
+2.52.0
+