bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#63921: Activation snippets in reverse order, prevent boot


From: Ludovic Courtès
Subject: bug#63921: Activation snippets in reverse order, prevent boot
Date: Tue, 06 Jun 2023 11:58:40 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Ludovic Courtès <ludo@gnu.org> skribis:

> 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:
>
> $ 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)
> (eval-when (expand load eval) (let ((extensions (quote ())) (prepend (lambda 
> (items lst) (let loop ((items items) (lst lst)) (if (null? items) lst (loop 
> (cdr items) (cons (car items) (delete (car items) lst)))))))) (set! 
> %load-path (prepend (cons 
> "/gnu/store/pj751v3199vmv6i6sf0szp185ryzcfdg-module-import" (map (lambda 
> (extension) (string-append extension "/share/guile/site/" 
> (effective-version))) extensions)) %load-path)) (set! %load-compiled-path 
> (prepend (cons 
> "/gnu/store/pql80c2hy38bb60c68sng74s4xa35vwk-module-import-compiled" (map 
> (lambda (extension) (string-append extension "/lib/guile/" 
> (effective-version) "/site-ccache")) extensions)) 
> %load-compiled-path))))(begin (begin (false-if-exception (delete-file 
> "/run/booted-system")) (symlink (canonicalize-path "/run/current-system") 
> "/run/booted-system") (let loop ((fd 3)) (when (< fd 1024) 
> (false-if-exception (let ((flags (fcntl fd F_GETFD))) (when (zero? (logand 
> flags FD_CLOEXEC)) (fcntl fd F_SETFD (logior FD_CLOEXEC flags))))) (loop (+ 
> fd 1)))) (execl 
> "/gnu/store/wj5i6x3xgai7p8whwqybxwqdjdbmbzha-shepherd-0.10.99-git/bin/shepherd"
>  "shepherd" "--config" 
> "/gnu/store/gnjghlc3n5qbala5jfdslgfi0n3vy8v7-shepherd.conf")) (primitive-load 
> "/gnu/store/riabgidmf6fh76klc1yam7k9j1478vvw-activate.scm") (begin 
> (use-modules (guix build utils)) (letrec-syntax ((fail-safe (syntax-rules () 
> ((_ exp rest ...) (begin (catch (quote system-error) (lambda () exp) (const 
> #f)) (fail-safe rest ...))) ((_) #t)))) (fail-safe (delete-file 
> "/etc/group.lock") (delete-file "/etc/passwd.lock") (delete-file 
> "/etc/.pwd.lock") (setenv "GUIX_LOCPATH" 
> "/gnu/store/5fmqijrs5f7vx8mc2q2pmq26yvhb74sm-glibc-utf8-locales-2.35/lib/locale")
>  (setlocale LC_CTYPE "en_US.utf8") (delete-file-recursively "/tmp") 
> (delete-file-recursively "/var/run") (mkdir "/tmp") (chmod "/tmp" 1023) 
> (mkdir "/var/run") (chmod "/var/run" 493) (delete-file-recursively 
> "/run/udev/watch.old")))))
>
> Namely, (execl "…/bin/shepherd") comes before the cleanup expressions,
> which is why /var/run/shepherd/socket is still around when we boot.

Fixed in 181951207339508789b28ba7cb914f983319920f.

The regression came from dbbc7e946131ba257728f1d05b96c4339b7ee88b, which
led ‘modify-services’ to change the order of services (something I had
completely overlooked while reviewing, apologies!).  I ended up
rewriting ‘modify-services’.  Good news is we now have tests for this.

Ludo’.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]