[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’.
- bug#63921: Activation snippets in reverse order, prevent boot, Ludovic Courtès, 2023/06/06
- bug#63921: Activation snippets in reverse order, prevent boot,
Ludovic Courtès <=
- bug#63921: Activation snippets in reverse order, prevent boot, pelzflorian (Florian Pelz), 2023/06/07
- bug#63921: Activation snippets in reverse order, prevent boot, Jelle Licht, 2023/06/07
- bug#63921: Activation snippets in reverse order, prevent boot, Brian Cully, 2023/06/07
- bug#63921: Activation snippets in reverse order, prevent boot, pelzflorian (Florian Pelz), 2023/06/07
- bug#63921: Activation snippets in reverse order, prevent boot, pelzflorian (Florian Pelz), 2023/06/17
bug#63921: Patch proposed, Felix Lechner, 2023/06/26