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

From: Ludovic Courtès <[email-masked]>
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’.