Subject: bug#63921: closed (Re: bug#63921: Activation snippets in reverse order, prevent boot)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 01 Sep 2023 11:45:02 +0000

Your bug report

#63921: Activation snippets in reverse order, prevent boot

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
63921: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63921
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#63921: Activation snippets in reverse order, prevent boot
From: Maxim Cournoyer <[email-masked]>
To: Felix Lechner <[email-masked]>
Cc: [email-masked]
Date: Fri, 01 Sep 2023 07:43:50 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

Felix Lechner <[email-masked]> writes:

> Hi,
>
> A patch to resolve this issue was proposed at the other bug
>
>   https://issues.guix.gnu.org/64106#5

Brian's patch in https://issues.guix.gnu.org/64106#7 was installed; it
came with tests and also cause an error to be raised when attempting to
modify a phase already deleted.

Closing, thanks for the reminder.

-- 
Thanks,
Maxim

Subject: Activation snippets in reverse order, prevent boot
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Date: Tue, 06 Jun 2023 10:15:54 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Booting a system reconfigured from
eed55a6544d5bda2245ec853e5fa4b28e1865bea fails with shepherd saying:

  error: while opening socket '/var/run/shepherd/socket': Address already in use

The root cause appears to be that the ‘boot’ program has expressions
reversed:

--8<---------------cut here---------------start------------->8---
$ guix gc --references $(guix gc --derivers $(readlink -f /var/guix/profiles/system-236-link)) | grep boot
/gnu/store/21ldhyrpji6lkkdxi4lgr5k9l5fr2b7l-boot.drv
$ cat $(guix build /gnu/store/21ldhyrpji6lkkdxi4lgr5k9l5fr2b7l-boot.drv)
--8<---------------cut here---------------end--------------->8---

Namely, (execl "…/bin/shepherd") comes before the cleanup expressions,
which is why /var/run/shepherd/socket is still around when we boot.

Ludo’.