Subject: Re: [bug#73494] [PATCH 0/2] tmpfs /run.

From: Hilton Chain <[email-masked]>
Date: Sat, 04 Jan 2025 23:23:41 +0800

Hi Maxim,
On Thu, 02 Jan 2025 23:11:54 +0800,
Maxim Cournoyer wrote:
>
> Hi Hilton,
>
> Sorry for the delay.
>
> Hilton Chain <[email-masked]> writes:
>
> [...]
>
> > Another concern I have is, with /run and /var/run unified,
> > ‘guix system roll-back’ and ‘guix system switch-generation’ can't finish the
> > activation stage because of the error handling in dbus-activation from previous
> > generations.
> >
> > $ guix system describe
> > Generation 7	Dec 20 2024 23:10:05	(current)
> > [...]
> > $ sudo guix system roll-back
> > [...]
> > switched from generation 7 to 6
> > [...]
> > guix system: error: rmdir: Directory not empty
> > $ guix system describe
> > Generation 6	Dec 20 2024 22:57:19	(current)
> >
> > Do we have a way to fix this?
>
> It's not clear to me where it fails exactly, so I'm not sure, but in the

It comes from error handling code in (@@ (gnu services dbus) dbus-activation),
dbus-activation.

> worst case a fat warning as a NEWS entry could do, perhaps?  Would it
> break dbus on a reboot (activation runs at reboot too, right?), or just
> print this otherwise innocuous error at roll-back/switch-generation
> time?

Yes, it only affects roll-back/switch-generation and is harmless to dbus service
since the activation should be done already.

However I'm afraid its failure may break the activation process:
--8<---------------cut here---------------start------------->8---
(for-each primitive-load
          '("...-activate-service.scm" ...))
--8<---------------cut here---------------end--------------->8---

Can we run this primitive-load with false-if-exception?