GNU bug report logs - #78919
^C'ed --keep-failed build leaves directory owned by root

Previous Next

Package: guix;

Reported by: Janneke Nieuwenhuizen <janneke <at> gnu.org>

Date: Sat, 28 Jun 2025 08:49:02 UTC

Severity: normal

Done: Andreas Enge <andreas <at> enge.fr>

To reply to this bug, email your comments to 78919 AT debbugs.gnu.org.
There is no need to reopen the bug first.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#78919; Package guix. (Sat, 28 Jun 2025 08:49:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Janneke Nieuwenhuizen <janneke <at> gnu.org>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sat, 28 Jun 2025 08:49:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Janneke Nieuwenhuizen <janneke <at> gnu.org>
To: bug-guix <at> gnu.org
Subject: ^C'ed --keep-failed build leaves directory owned by root
Date: Sat, 28 Jun 2025 10:48:33 +0200
[Message part 1 (text/plain, inline)]
When running something like

--8<---------------cut here---------------start------------->8---
guix build hello --with-configure-flag=hello=foo=bar --keep-failed
--8<---------------cut here---------------end--------------->8---

and hitting ^C during the `build' phase, the guix-daemon leaves

--8<---------------cut here---------------start------------->8---
$ 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
--8<---------------cut here---------------end--------------->8---

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).

Note that I have not been able to reproduce this when interrupting the
build during the `configure' phase.  It also does not reproduce when
the build breaks by itself, e.g., when running something like

--8<---------------cut here---------------start------------->8---
guix build hello --with-configure-flag=hello=CFLAGS=-Dparse_options=main --keep-failed
--8<---------------cut here---------------end--------------->8---

the build tree is owned by janneke.

Details and build log attached (I hope...).

Greetings,
Janneke

PS: I tried several times to report this using M-x fj-create-issue, but
I'm gettting either

--8<---------------cut here---------------start------------->8---
Contacting host: codeberg.org:443
fedi-http--process-response: 
404 page not found
--8<---------------cut here---------------end--------------->8---

or

--8<---------------cut here---------------start------------->8---
Contacting host: codeberg.org:443
if: I am Error: The target couldn't be found. Endpoint: repos/janneke/guix/
--8<---------------cut here---------------end--------------->8---

I've tried for Repo, amongst others: C-c C-r guix, guix/guix,
codeberg.org/guix/guix, https://codeberg.org/guix/guix.  Help much
appreciated.  Also, an unsuccesful submit: C-c C-c, kills the buffer as
I found out after crafting it the first time.  Emacs should *never* do
that, losing text is one of the main reasons I avoid using a browser!

Details

--8<---------------cut here---------------start------------->8---
$ guix describe
Generation 102	Jun 27 2025 20:48:59	(current)
  guix 93d10b5
    repository URL: https://git.guix.gnu.org/guix.git
    branch: master
    commit: 93d10b5f4e709ed8d6f95f63f1279f52fd982ea8
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
$ guix system describe
Generation 158	Jun 27 2025 22:07:23	(current)
  file name: /var/guix/profiles/system-158-link
  canonical file name: /gnu/store/alii74y72cnhlv8cigxibw2y3kdrhhwh-system
  label: GNU with Linux-Libre 6.14.11
  bootloader: grub
  root device: /dev/mapper/guix
  kernel: /gnu/store/0a8vvmsl30f2wj4rqwa4lxjrcb5z2pcj-linux-libre-6.14.11/bzImage
  channels:
    guix:
      repository URL: https://git.guix.gnu.org/guix.git
      branch: master
      commit: 93d10b5f4e709ed8d6f95f63f1279f52fd982ea8
  configuration file: /gnu/store/n3y742pvdglzzdz2magw0fdv286v8nqk-configuration.scm
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
$ sudo herd status guix-daemon
Status of guix-daemon:
  It is running since Fri Jun 27 22:13:10 2025 (12 hours ago).
  Main PID: 647
  Command: /gnu/store//gvd2gga48av5pjsyczqn6brdjz1d5xzf-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 "http://kluit.dezyne.org:8181 http://janneke.lilypond.org:8080 https://bordeaux.guix.gnu.org https://ci.guix.gnu.org"
  It is enabled.
  Provides: guix-daemon
  Requires: user-processes guix-ownership avahi-daemon
  Custom actions: set-http-proxy discover
  Will be respawned.
  Log file: /var/log/guix-daemon.log

Recent messages (use '-n' to view more or less):
  2025-06-28 10:04:33 accepted connection from pid 26301, user janneke
  2025-06-28 10:04:52 SIGPOLL
  2025-06-28 10:04:52 note: keeping build directory `/tmp/guix-build-hello-2.12.2.drv-9'
  2025-06-28 10:04:52 error (ignored): file `/tmp/guix-build-hello-2.12.2.drv-9/top/GMfifo3394' has an unsupported type
  2025-06-28 10:04:52 unexpected build daemon error: interrupted by the user
--8<---------------cut here---------------end--------------->8---

[hello.log (application/octet-stream, attachment)]
[Message part 3 (text/plain, inline)]
-- 
Janneke Nieuwenhuizen <janneke <at> gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com

Information forwarded to bug-guix <at> gnu.org:
bug#78919; Package guix. (Sun, 29 Jun 2025 10:21:03 GMT) Full text and rfc822 format available.

Message #8 received at 78919 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Janneke Nieuwenhuizen <janneke <at> gnu.org>
Cc: 78919 <at> debbugs.gnu.org
Subject: Reporting issues with fj.el
Date: Sun, 29 Jun 2025 12:13:57 +0200
Hi,

Just a quick note before looking at the actual bug…

Janneke Nieuwenhuizen <janneke <at> gnu.org> writes:

> PS: I tried several times to report this using M-x fj-create-issue, but
> I'm gettting either
>
> Contacting host: codeberg.org:443
> fedi-http--process-response: 
> 404 page not found
>
>
> or
>
> Contacting host: codeberg.org:443
> if: I am Error: The target couldn't be found. Endpoint: repos/janneke/guix/

I usually create issues from the “issue timeline”:

  1. M-x fj-list-issues
  2. c

Maybe there’s a bug such that doing ‘M-x fj-create-issue’ from another
context gets the repo wrong?

HTH!

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#78919; Package guix. (Tue, 08 Jul 2025 16:36:03 GMT) Full text and rfc822 format available.

Message #11 received at 78919 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> chbouib.org>
To: Janneke Nieuwenhuizen <janneke <at> gnu.org>
Cc: 78919 <at> debbugs.gnu.org
Subject: Re: bug#78919: ^C'ed --keep-failed build leaves directory owned by
 root
Date: Tue, 08 Jul 2025 10:00:43 +0200
Hi Janneke,

Janneke Nieuwenhuizen <janneke <at> gnu.org> 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
>
> $ 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:

--8<---------------cut here---------------start------------->8---
$ 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
$ ls -ld /tmp/guix-build-hello-2.12.2.drv-0/
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
--8<---------------cut here---------------end--------------->8---

Is there something else at play?

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#78919; Package guix. (Tue, 08 Jul 2025 20:23:02 GMT) Full text and rfc822 format available.

Message #14 received at 78919 <at> debbugs.gnu.org (full text, mbox):

From: Janneke Nieuwenhuizen <janneke <at> gnu.org>
To: Ludovic Courtès <ludo <at> chbouib.org>
Cc: 78919 <at> debbugs.gnu.org
Subject: Re: bug#78919: ^C'ed --keep-failed build leaves directory owned by
 root
Date: Tue, 08 Jul 2025 22:21:39 +0200
Ludovic Courtès writes:

Hey Ludo,

> Janneke Nieuwenhuizen <janneke <at> gnu.org> 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 <at> 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 <at> 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 <janneke <at> gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com




Information forwarded to bug-guix <at> gnu.org:
bug#78919; Package guix. (Tue, 08 Jul 2025 21:12:03 GMT) Full text and rfc822 format available.

Message #17 received at 78919 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Janneke Nieuwenhuizen <janneke <at> gnu.org>
Cc: 78919 <at> debbugs.gnu.org
Subject: Re: bug#78919: ^C'ed --keep-failed build leaves directory owned by
 root
Date: Tue, 08 Jul 2025 23:00:06 +0200
Hi Janneke,

Wait, indeed, if I C-c during the ‘build’ phase, I end up with:

--8<---------------cut here---------------start------------->8---
$ ls -lrtd /tmp/guix-build-hello-2.12.2.drv-0/
drwx------ 3 root root 60  8 juil. 22:44 /tmp/guix-build-hello-2.12.2.drv-0/
--8<---------------cut here---------------end--------------->8---

(This is counter-intuitive because the daemon doesn’t know what a phase
is, which is why I didn’t pay attention to the build phase…)

The reason appears in the output of guix-daemon:

--8<---------------cut here---------------start------------->8---
  2025-07-08 22:45:06 note: keeping build directory `/tmp/guix-build-hello-2.12.2.drv-0'
  2025-07-08 22:45:06 error (ignored): file `/tmp/guix-build-hello-2.12.2.drv-0/top/GMfifo3392' has an unsupported type
  2025-07-08 22:45:06 unexpected build daemon error: interrupted by the user
--8<---------------cut here---------------end--------------->8---

This comes from the call to ‘secureFilePerms’ added in
‘DerivationGoal::deleteTmpDir’ as part of
ae18b3d9e6bd0c184505a094851448d08555e23e, a commit that supports the
unprivileged daemon.

I’ll see how we can fix that.

Thanks!

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#78919; Package guix. (Sat, 12 Jul 2025 09:50:01 GMT) Full text and rfc822 format available.

Message #20 received at 78919 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 78919 <at> debbugs.gnu.org, Janneke Nieuwenhuizen <janneke <at> gnu.org>
Subject: Re: bug#78919: ^C'ed --keep-failed build leaves directory owned by
 root
Date: Sat, 12 Jul 2025 11:49:03 +0200
Hi,

Ludovic Courtès <ludo <at> gnu.org> writes:

>   2025-07-08 22:45:06 note: keeping build directory `/tmp/guix-build-hello-2.12.2.drv-0'
>   2025-07-08 22:45:06 error (ignored): file `/tmp/guix-build-hello-2.12.2.drv-0/top/GMfifo3392' has an unsupported type
>   2025-07-08 22:45:06 unexpected build daemon error: interrupted by the user
>
> This comes from the call to ‘secureFilePerms’ added in
> ‘DerivationGoal::deleteTmpDir’ as part of
> ae18b3d9e6bd0c184505a094851448d08555e23e, a commit that supports the
> unprivileged daemon.

Proposed fix:

  https://codeberg.org/guix/guix/pulls/1189

Ludo'.




Reply sent to Andreas Enge <andreas <at> enge.fr>:
You have taken responsibility. (Sat, 12 Jul 2025 12:08:01 GMT) Full text and rfc822 format available.

Notification sent to Janneke Nieuwenhuizen <janneke <at> gnu.org>:
bug acknowledged by developer. (Sat, 12 Jul 2025 12:08:02 GMT) Full text and rfc822 format available.

Message #25 received at 78919-done <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: 78919-done <at> debbugs.gnu.org
Subject: Close
Date: Sat, 12 Jul 2025 14:07:33 +0200
This is also on codeberg:
   https://codeberg.org/guix/guix/issues/471

Andreas





This bug report was last modified 14 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.