Subject: bug#68093: Guix system reconfigure starts services with auto-start? #f

From: Richard Sent <[email-masked]>
Date: Thu, 28 Dec 2023 17:25:09 -0500

When reconfiguring the system with Guix, shepherd services that have 
auto-start? set to #f are started during reconfiguration. Per 
https://issues.guix.gnu.org/22039#26, services shouldn't be started by 
reconfigure if auto-start is #f. These services are not started on boot, 
which matches expected behavior.

This is different from bug#42167, as this problem occurs even if the 
service already exists and is stopped.

I created an test OS configuration to help others reproduce it, see 
attached. This was run on guix 931d893c550128591018587c90d2491fd66a11a4.

I used openssh-service with %auto-start set to #f as well as 
ganeti-metad-service since both of these services are already supplied 
with Guix and are/can be set to auto-start?=#f. I haven't actually 
configured ganeti-metad-service so the service won't start successfully, 
but we can still see Guix attempt to start the service when it 
shouldn't.

Below are snippets of the console output. I've attached the full 
versions to this email. I also attached result of building 
upgrade-shepherd-services.scm.drv.

On a clean boot, post test.scm reconfiguration:
--8<---------------cut here---------------start------------->8---
richard@test ~$ sudo herd status
Password:
Started:
[...]
Stopped:
  - ganeti-metad
  - ssh-daemon
[...]
--8<---------------cut here---------------end--------------->8---

While running reconfigure:
--8<---------------cut here---------------start------------->8---
building 
/gnu/store/6dcgjsa8gbv6wdq8nyrdkm5sxw8zgxl3-upgrade-shepherd-services.scm.drv...
[...]
shepherd: Service user-homes has been started.
shepherd: Starting service ganeti-metad...
shepherd: Service ganeti-metad could not be started.
shepherd: Service user-homes has been started.
shepherd: Starting service ssh-daemon...
shepherd: Service ssh-daemon has been started.
To complete the upgrade, run 'herd restart SERVICE' to stop,
upgrade, and restart each service that was not automatically restarted.
Run 'herd status' to view the list of services on your system.
--8<---------------cut here---------------end--------------->8---

After running reconfigure:
--8<---------------cut here---------------start------------->8---
richard@test ~$ sudo herd status
Started:
[...]
  + ssh-daemon
[...]
Failed to start:
  ! ganeti-metad
--8<---------------cut here---------------end--------------->8---

Guix describe output:
--8<---------------cut here---------------start------------->8---
Generation 5	Dec 27 2023 16:35:46	(current)
   nonguix 71a53fa
     repository URL: https://gitlab.com/nonguix/nonguix
     branch: master
     commit: 71a53faf2e1925a309b480f17e5b836740ce54bc
   guix 931d893
     repository URL: https://git.savannah.gnu.org/git/guix.git
     branch: master
     commit: 931d893c550128591018587c90d2491fd66a11a4
--8<---------------cut here---------------end--------------->8---