Hi Mark, Mark H Weaver <m...@netris.org> skribis:
> l...@gnu.org (Ludovic Courtès) writes: > >> civodul pushed a commit to branch master >> in repository guix. >> >> commit 3cf319a3f8e23831960a0f1320122cc514188a37 >> Author: Ludovic Courtès <l...@gnu.org> >> Date: Sun Aug 21 19:03:29 2016 +0200 >> >> services: elogind: Provide '%elogind-file-systems' by extension. >> >> * gnu/system/file-systems.scm (%base-file-systems): Remove >> %ELOGIND-FILE-SYSTEMS. >> * gnu/services/desktop.scm (elogind-service-type): Extend >> FILE-SYSTEM-SERVICE-TYPE to provide %ELOGIND-FILE-SYSTEMS. > > This commit causes a major problem on my Lemote YeeLoong (mips64el) > machine running GuixSD. I don't know whether it might affect others. Apologies, I didn’t expect this. :-/ > When I run 'guix system reconfigure' to update to a system with this > commit, it unloads the older %elogind-file-system services, which causes > my X server to crash and leave me in text mode with my keyboard in the > wrong mode, so I have to hard reset the machine. > > In addition, the 'guix system reconfigure' gets stuck. (I can see this > because I always run it in a text terminal; I do all my 'root' work > there.) > > I've tried it twice, and transcribed (by hand) the last few lines of the > output from 'guix system reconfigure': > > First time: > > making '/gnu/store/f0z88r...-system' the current system... > guix system: unloading service 'file-system-/sys/fs/cgroup/elogind'... > wlp0s14f5u3: deauthenticating from xx:xx:xx:xx:xx:xx by local choice > (Reason: 3=DEAUTH_LEAVING) > > Second time: > > making '/gnu/store/f0z88r...-system' the current system... > guix system: unloading service 'file-system-/run/systemd'... > > I'm not sure if it's relevant, but I don't have 'elogin-service' on my > YeeLoong. I can't run it there because it depends on 'mozjs' which > fails to build on mips64el. The problem here is that stopping a ‘file-system-xxx’ Shepherd service amounts to stopping the ‘user-processes’—i.e., kill all the user processes. This can be seen in the service dependency graph: guix system shepherd-graph the-config.scm | dot -Tps > t.ps So ‘guix system reconfigure’ should detect this case and keep the service up and running instead of stopping it. Namely, ‘call-with-service-upgrade-info’ in (guix scripts system) should check whether a given Shepherd service has running dependent services. To be continued… Thanks for reporting the issue and reverting the faulty commit! Ludo’. PS: On my machine (where elogind runs), Xorg.0.log reads: (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration … which suggests we’re doing things wrong here.