Subject: Re: bug#78919: ^C'ed --keep-failed build leaves directory owned by root

From: Janneke Nieuwenhuizen <[email-masked]>
Date: Tue, 08 Jul 2025 22:21:39 +0200

Ludovic Courtès writes:

Hey Ludo,

> Janneke Nieuwenhuizen <[email-masked]> writes:
>
>> When running something like
>>
>> guix build hello --with-configure-flag=hello=foo=bar --keep-failed
>>
>> and hitting ^C during the `build' phase, the guix-daemon leaves

NOTE: `build' phase, _not_ 'configure'

>> $ sudo ls -ld /tmp/guix-build-hello-2.12.2.drv-0 /tmp/guix-build-hello-2.12.2.drv-0/top
>> drwx------ 3 root          root      4096 Jun 28 10:04 /tmp/guix-build-hello-2.12.2.drv-0
>> drwxr-xr-x 3 guixbuilder01 guixbuild 4096 Jun 28 10:04 /tmp/guix-build-hello-2.12.2.drv-0/top
>>
>>
>> This is after updating my system yesterday to guix-1.4.0-39.  The
>> guix-daemon is running as root, so without using (privileged? #f).
>
> I cannot reproduce it:
>
> $ timeout -s INT 2s guix build hello --no-grafts --check -K -v1

This command throws INT during 'configure' on my computer

--8<---------------cut here---------------start------------->8---
22:19:11 janneke@glimdal:~/src/guix/master 
$ timeout -s INT 2s guix build hello --no-grafts --check -K -v1
The following derivation will be built:
  /gnu/store/f0sgfzr1za0mnnm6bk9qiqkyapdby7bv-hello-2.12.2.drv

building /gnu/store/f0sgfzr1za0mnnm6bk9qiqkyapdby7bv-hello-2.12.2.drv...
/ 'configure' phase[124] 22:19:15 janneke@glimdal:~/src/guix/master 
$ 
--8<---------------cut here---------------end--------------->8---

and ...

> The following derivation will be built:
>   /gnu/store/f0sgfzr1za0mnnm6bk9qiqkyapdby7bv-hello-2.12.2.drv
>
> building /gnu/store/f0sgfzr1za0mnnm6bk9qiqkyapdby7bv-hello-2.12.2.drv...
> \ 'configure' phase
> $ ls -ld /tmp/guix-build-hello-2.12.2.drv-0/

...from this output it seems on your computer too.  Using

--8<---------------cut here---------------start------------->8---
timeout -s INT 10s guix build hello --no-grafts --check -K -v1
--8<---------------cut here---------------end--------------->8---

works for me, or "just" hit ^C manually.

> drwxr-xr-x 3 ludo users 100  8 juil. 09:58 /tmp/guix-build-hello-2.12.2.drv-0/
> $ sudo herd status guix-daemon |grep Command
>   Command: /gnu/store/l7dp21l1p6hal8hiky44csll9vd9f1j5-guix-1.4.0-39.95d8845/bin/guix-daemon --build-users-group guixbuild --max-silent-time 3600 --timeout 86400 --log-compression gzip --discover=yes --substitute-urls "https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://guix.bordeaux.inria.fr" --cache-failures
>
> Is there something else at play?

I hope not, just the configure/build phase subtlety?

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <[email-masked]>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com