Subject: guix build --keep-going (-k) not always honored

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 05 Jan 2023 22:56:44 -0500

Hi,

I just encountered the following, which is puzzling:

I updated ruby-asciidoctor, and was attempting to rebuild its
dependents, with something like:

$ ./pre-inst-env guix build --keep-going weechat ccextractor

Which produced:

--8<---------------cut here---------------start------------->8---
make[2]: Leaving directory '/tmp/guix-build-ccextractor-0.88.drv-0/source/build'
make[1]: *** [CMakeFiles/Makefile2:129: lib_ccx/CMakeFiles/ccx.dir/all] Error 2
make[1]: Leaving directory '/tmp/guix-build-ccextractor-0.88.drv-0/source/build'
make: *** [Makefile:139: all] Error 2
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-j" "24") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `build' failed after 1.4 seconds
command "make" "-j" "24" failed with status 2
builder for `/gnu/store/g4bx8y7x3pn1rjhf0cr2psm8bgbwar4r-ccextractor-0.88.drv' failed with exit code 1
@ build-failed /gnu/store/g4bx8y7x3pn1rjhf0cr2psm8bgbwar4r-ccextractor-0.88.drv - 1 builder for `/gnu/store/g4bx8y7x3pn1rjhf0cr2psm8bgbwar4r-ccextractor-0.88.drv' failed with exit code 1
derivation '/gnu/store/g4bx8y7x3pn1rjhf0cr2psm8bgbwar4r-ccextractor-0.88.drv' offloaded to 'localhost' failed: build of `/gnu/store/g4bx8y7x3pn1rjhf0cr2psm8bgbwar4r-ccextractor-0.88.drv' failed
build of /gnu/store/g4bx8y7x3pn1rjhf0cr2psm8bgbwar4r-ccextractor-0.88.drv failed
View build log at '/var/log/guix/drvs/g4/bx8y7x3pn1rjhf0cr2psm8bgbwar4r-ccextractor-0.88.drv'.
guix build: error: build of `/gnu/store/g4bx8y7x3pn1rjhf0cr2psm8bgbwar4r-ccextractor-0.88.drv' failed
--8<---------------cut here---------------end--------------->8---

This is not the expected output when using --keep-failed; I would have
expected the build to complete then guix to report about the failure,
but it appears to abort without building weechat.

-- 
Thanks,
Maxim