Hi Carlo, Carlo Zancanaro skribis: > When working on the Shepherd, I found that in the build containers > processes don't get reaped by pid 1. See > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=30637#29. This caused > (and will cause) the Shepherd's tests to fail on some systems. > > Our guile-builder script should handle SIGCHLD and then use waitpid to > reap the child processes. Here's my attempt at a patch to do that. I would rather install the handler as a phase in gnu-build-system: this leaves ‘build-expression->derivation’ generic, and also gives us more flexibility (e.g., we can disable that phase without doing a full rebuild if needed.) See the patch below. WDYT? On my first attempt with: ./pre-inst-env guix build -e '(@@ (gnu packages commencement) findutils-boot0)' quickly failed: --8<---------------cut here---------------start------------->8--- checking for vfork.h... no checking for fork... yes checking for vfork... yes checking for working fork... Backtrace: In ice-9/boot-9.scm: yes checking for working vfork... (cached) yes checking for strcasecmp... 157: 13 [catch #t # ...] In unknown file: ?: 12 [apply-smob/1 #] In ice-9/boot-9.scm: 63: 11 [call-with-prompt prompt0 ...] In ice-9/eval.scm: 432: 10 [eval # #] In ice-9/boot-9.scm: 2320: 9 [save-module-excursion #] 3966: 8 [#] 1645: 7 [%start-stack load-stack #] 1650: 6 [#] In unknown file: ?: 5 [primitive-load "/gnu/store/pz3jy89ax5jg0j6fnp5n42x4vznga8s3-make-boot0-4.2.1-guile-builder"] In ice-9/eval.scm: 387: 4 [eval # ()] In srfi/srfi-1.scm: 619: 3 [for-each # ...] In /gnu/store/hf8xflikhgsd4hfy9h8s0cjzfqm8f3yb-module-import/guix/build/gnu-build-system.scm: 819: 2 [# #] In /gnu/store/hf8xflikhgsd4hfy9h8s0cjzfqm8f3yb-module-import/guix/build/utils.scm: 614: 1 [invoke "/gnu/store/g34swjqyw205d15pyra39j56qvyxq9w9-bootstrap-binaries-0/bin/bash" ...] In unknown file: ?: 0 [system* "/gnu/store/g34swjqyw205d15pyra39j56qvyxq9w9-bootstrap-binaries-0/bin/bash" ...] ERROR: In procedure system*: ERROR: In procedure system*: Interrupted system call builder for `/gnu/store/hc96d5dcshbdgavpp0j01qnsjf0yf9z5-make-boot0-4.2.1.drv' failed with exit code 1 --8<---------------cut here---------------end--------------->8--- This is why ‘install-SIGCHLD-handler’ in the patch does nothing on Guile <= 2.0.9. Now, we’d need to test it for real with Guile 2.2. I suppose one way to test without rebuilding it all would be to add this phase explicitly in a package and try building it with --rounds=10 or something. Would you like to try that? Note that we have only a couple of days left before the ‘core-updates’ freeze. Thanks, Ludo’.