Hi, I'm trying to use "guix deploy" to my aarch64-linux machine. This does not succeed as /gnu/store/g9jx0a8lfwmg1vyx78nlx55ikr5c7cj0-shepherd-1.0.2.drv aborts with test failures in tests/status-sexp.sh and tests/forking-service.sh.
The log is attached.
FAIL: tests/status-sexp ======================= + shepherd --version shepherd (GNU Shepherd) 1.0.2 Copyright (C) 2025 the Shepherd authors License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. + herd --version herd (GNU Shepherd) 1.0.2 Copyright (C) 2025 the Shepherd authors License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. + socket=t-socket-14001 + conf=t-conf-14001 + log=t-log-14001 + pid=t-pid-14001 + herd='herd -s t-socket-14001' + trap 'cat t-log-14001 || true; rm -f t-socket-14001 t-conf-14001 t-log-14001; test -f t-pid-14001 && kill `cat t-pid-14001` || true; rm -f t-pid-14001' EXIT + cat + rm -f t-pid-14001 + test -f t-pid-14001 + shepherd -I -s t-socket-14001 -c t-conf-14001 -l t-log-14001 --pid=t-pid-14001 + sleep 0.3 + test -f t-pid-14001 + sleep 0.3 + test -f t-pid-14001 + sleep 0.3 + test -f t-pid-14001 + sleep 0.3 GNU Shepherd 1.0.2 (Guile 3.0.9, aarch64-unknown-linux-gnu) Starting service root... Service root started. Service root running with value #<<process> id: 14089 command: #f>. Service root has been started. + test -f t-pid-14001 + sleep 0.3 Starting service foo... Service foo started. Service foo running with value abc. Service foo has been started. Configuration successfully loaded from 't-conf-14001'. + test -f t-pid-14001 ++ cat t-pid-14001 + shepherd_pid=14089 + kill -0 14089 + test -S t-socket-14001 + fetch_status=' (let ((sock (open-connection "t-socket-14001"))) (write-command (shepherd-command '\''status '\''root) sock) (read sock))' ++ cat /proc/14089/cmdline ++ xargs -0 ++ sed '-es/ /" "/g ; s/^/"/; s/$/"/' + shepherd_command=' "/gnu/store/nidrvj938dvdw8rxgr35pgy68974cwfy-qemu-8.2.2-static/bin/qemu-aarch64" "/gnu/store/mwv03cfpqwvnffq76fp4x1kmn6833dpa-guile-3.0.9/bin/guile" "/gnu/store/mwv03cfpqwvnffq76fp4x1kmn6833dpa-guile-3.0.9/bin/guile" "--no-auto-compile" "/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/shepherd" "-I" "-s" "t-socket-14001" "-c" "t-conf-14001" "-l" "t-log-14001" "--pid=t-pid-14001"' + root_service_sexp=' (service (version 0) (provides (root shepherd)) (requires ()) (respawn? #f) (docstring "The root service is used to operate on shepherd itself.") (enabled? #t) (running (process (version 0) (id 14089) (command ( "/gnu/store/nidrvj938dvdw8rxgr35pgy68974cwfy-qemu-8.2.2-static/bin/qemu-aarch64" "/gnu/store/mwv03cfpqwvnffq76fp4x1kmn6833dpa-guile-3.0.9/bin/guile" "/gnu/store/mwv03cfpqwvnffq76fp4x1kmn6833dpa-guile-3.0.9/bin/guile" "--no-auto-compile" "/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/shepherd" "-I" "-s" "t-socket-14001" "-c" "t-conf-14001" "-l" "t-log-14001" "--pid=t-pid-14001")))) (conflicts ()) (last-respawns ()) (status-changes ((running . 0) (starting . 0))) (startup-failures ()) (status running) (one-shot? #f) (transient? #f) (respawn-limit (5 . 7)) (respawn-delay 0.1) (actions (help status halt power-off kexec load eval unload reload daemonize restart)) (exit-statuses ()) (recent-messages ()) (log-files ("/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-log-14001")) (pending-replacement? #f))' + define_canonicalize=' (define (reset-timestamps service) (match service (('\''service version properties ...) (cons* '\''service version (map (match-lambda (('\''status-changes alist) (list '\''status-changes (map (match-lambda ((status . _) (cons status 0))) alist))) (prop prop)) properties))))) (define (remove-messages service) (match service (('\''service version properties ...) (cons* '\''service version (map (match-lambda (('\''recent-messages _) '\''(recent-messages ())) (prop prop)) properties))))) (define canonicalize-service-sexp (compose reset-timestamps remove-messages)) ' + /gnu/store/mwv03cfpqwvnffq76fp4x1kmn6833dpa-guile-3.0.9/bin/guile -c ' (use-modules (shepherd comm) (srfi srfi-1) (ice-9 match)) (define (reset-timestamps service) (match service (('\''service version properties ...) (cons* '\''service version (map (match-lambda (('\''status-changes alist) (list '\''status-changes (map (match-lambda ((status . _) (cons status 0))) alist))) (prop prop)) properties))))) (define (remove-messages service) (match service (('\''service version properties ...) (cons* '\''service version (map (match-lambda (('\''recent-messages _) '\''(recent-messages ())) (prop prop)) properties))))) (define canonicalize-service-sexp (compose reset-timestamps remove-messages)) (exit (match (let ((sock (open-connection "t-socket-14001"))) (write-command (shepherd-command '\''status '\''root) sock) (read sock)) (('\''reply _ ('\''result (services)) ('\''error #f) ('\''messages ())) (lset= equal? (pk '\''ACTUAL (map canonicalize-service-sexp services)) '\''( (service (version 0) (provides (root shepherd)) (requires ()) (respawn? #f) (docstring "The root service is used to operate on shepherd itself.") (enabled? #t) (running (process (version 0) (id 14089) (command ( "/gnu/store/nidrvj938dvdw8rxgr35pgy68974cwfy-qemu-8.2.2-static/bin/qemu-aarch64" "/gnu/store/mwv03cfpqwvnffq76fp4x1kmn6833dpa-guile-3.0.9/bin/guile" "/gnu/store/mwv03cfpqwvnffq76fp4x1kmn6833dpa-guile-3.0.9/bin/guile" "--no-auto-compile" "/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/shepherd" "-I" "-s" "t-socket-14001" "-c" "t-conf-14001" "-l" "t-log-14001" "--pid=t-pid-14001")))) (conflicts ()) (last-respawns ()) (status-changes ((running . 0) (starting . 0))) (startup-failures ()) (status running) (one-shot? #f) (transient? #f) (respawn-limit (5 . 7)) (respawn-delay 0.1) (actions (help status halt power-off kexec load eval unload reload daemonize restart)) (exit-statuses ()) (recent-messages ()) (log-files ("/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-log-14001")) (pending-replacement? #f)) (service (version 0) (provides (foo)) (requires ()) (respawn? #t) (docstring "Foo!") (enabled? #t) (running abc) (conflicts ()) (last-respawns ()) (status-changes ((running . 0) (starting . 0))) (startup-failures ()) (status running) (one-shot? #f) (transient? #f) (respawn-limit (5 . 7)) (respawn-delay 1) (actions ()) (exit-statuses ()) (recent-messages ()) (log-files ()) (pending-replacement? #f)) (service (version 0) (provides (bar)) (requires (foo)) (respawn? #f) (docstring "Bar!") (enabled? #t) (running #f) (conflicts ()) (last-respawns ()) (status-changes ()) (startup-failures ()) (status stopped) (one-shot? #f) (transient? #f) (respawn-limit (5 . 7)) (respawn-delay 1) (actions ()) (exit-statuses ()) (recent-messages ()) (log-files ()) (pending-replacement? #f))))))) ' ;;; (ACTUAL ((service (version 0) (provides (root shepherd)) (requires ()) (respawn? #f) (docstring "The root service is used to operate on shepherd itself.") (enabled? #t) (running (process (version 0) (id 14089) (command ("/gnu/store/mwv03cfpqwvnffq76fp4x1kmn6833dpa-guile-3.0.9/bin/guile" "--no-auto-compile" "/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/shepherd" "-I" "-s" "t-socket-14001" "-c" "t-conf-14001" "-l" "t-log-14001" "--pid=t-pid-14001")))) (conflicts ()) (last-respawns ()) (status-changes ((running . 0) (starting . 0))) (startup-failures ()) (status running) (one-shot? #f) (transient? #f) (respawn-limit (5 . 7)) (respawn-delay 0.1) (actions (help status halt power-off kexec load eval unload reload daemonize restart)) (exit-statuses ()) (recent-messages ()) (log-files ("/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-log-14001")) (pending-replacement? #f)) (service (version 0) (provides (foo)) (requires ()) (respawn? #t) (docstring "Foo!") (enabled? #t) (running abc) (conflicts ()) (last-respawns ()) (status-changes ((running . 0) (starting . 0))) (startup-failures ()) (status running) (one-shot? #f) (transient? #f) (respawn-limit (5 . 7)) (respawn-delay 1) (actions ()) (exit-statuses ()) (recent-messages ()) (log-files ()) (pending-replacement? #f)) (service (version 0) (provides (bar)) (requires (foo)) (respawn? #f) (docstring "Bar!") (enabled? #t) (running #f) (conflicts ()) (last-respawns ()) (status-changes ()) (startup-failures ()) (status stopped) (one-shot? #f) (transient? #f) (respawn-limit (5 . 7)) (respawn-delay 1) (actions ()) (exit-statuses ()) (recent-messages ()) (log-files ()) (pending-replacement? #f)))) + cat t-log-14001 2025-02-22 21:49:35 GNU Shepherd 1.0.2 (Guile 3.0.9, aarch64-unknown-linux-gnu) 2025-02-22 21:49:35 bit-count is deprecated. Use bitvector-count, or a loop over array-ref if array support is needed. 2025-02-22 21:49:35 scm_bitvector_length is deprecated. Use scm_c_bitvector_length instead. 2025-02-22 21:49:35 Starting service root... 2025-02-22 21:49:35 Service root started. 2025-02-22 21:49:35 Service root running with value #<<process> id: 14089 command: #f>. 2025-02-22 21:49:35 Service root has been started. 2025-02-22 21:49:35 Starting service foo... 2025-02-22 21:49:35 Service foo started. 2025-02-22 21:49:35 Service foo running with value abc. 2025-02-22 21:49:35 Service foo has been started. 2025-02-22 21:49:35 Configuration successfully loaded from 't-conf-14001'. + rm -f t-socket-14001 t-conf-14001 t-log-14001 + test -f t-pid-14001 ++ cat t-pid-14001 + kill 14089 + rm -f t-pid-14001 Stopping service root... Exiting shepherd... Stopping service foo... Service foo stopped. Service foo is now stopped. Service bar is not running. Exiting. FAIL tests/status-sexp.sh (exit status: 1) FAIL: tests/forking-service =========================== + shepherd --version shepherd (GNU Shepherd) 1.0.2 Copyright (C) 2025 the Shepherd authors License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. + herd --version herd (GNU Shepherd) 1.0.2 Copyright (C) 2025 the Shepherd authors License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. + socket=t-socket-14248 + conf=t-conf-14248 + log=t-log-14248 + pid=t-pid-14248 + service_pid=t-service-pid-14248 + service_nofiles=t-service-nofiles-14248 + service2_pid=t-service2-pid-14248 + service2_started=t-service2-starts-14248 + herd='herd -s t-socket-14248' + trap cleanup EXIT + cat + cat t-conf-14248 ;; Leave a timeout long enough for slow machines. (default-pid-file-timeout 10) (define %command '("/gnu/store/d7q6yazfa1bxf4x7p9n3b99hn97q6bvw-bash-minimal-5.1.16/bin/bash" "-c" "ulimit -n >/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-service-nofiles-14248; sleep 600 & echo $! > /tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-service-pid-14248")) (register-services (list (service ;; A service that forks into a different process. '(test) #:start (make-forkexec-constructor %command #:pid-file "/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-service-pid-14248" #:resource-limits '((nofile 1567 1567))) #:stop (make-kill-destructor) #:respawn? #f))) (define %command2 '("/gnu/store/d7q6yazfa1bxf4x7p9n3b99hn97q6bvw-bash-minimal-5.1.16/bin/bash" "-c" "echo started >> /tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-service2-starts-14248; sleep 600 & echo $! > /tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-service2-pid-14248")) (register-services (list (service ;; A service that forks into a different process. '(test2) #:start (make-forkexec-constructor %command2 #:pid-file "/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-service2-pid-14248") #:stop (make-kill-destructor) #:respawn-delay 0 #:respawn? #t))) (define %command3 '("/gnu/store/d7q6yazfa1bxf4x7p9n3b99hn97q6bvw-bash-minimal-5.1.16/bin/bash" "-c" "sleep 600")) (register-services (list (service ;; A service that forks into a different process. '(test3) #:start (make-forkexec-constructor %command3) #:stop (make-kill-destructor) #:respawn? #t))) (define %command4 '("/gnu/store/d7q6yazfa1bxf4x7p9n3b99hn97q6bvw-bash-minimal-5.1.16/bin/bash" "-c" "trap 'echo ignoring SIGTERM' SIGTERM; while true ; do : ; done")) (register-services (list (service ;; A service that ignores SIGTERM. '(test4) #:requirement '(test3) #:start (make-forkexec-constructor %command4) #:stop (make-kill-destructor SIGTERM #:grace-period 3)))) + rm -f t-pid-14248 + test -f t-pid-14248 + shepherd -I -s t-socket-14248 -c t-conf-14248 -l t-log-14248 --pid=t-pid-14248 + sleep 0.3 + test -f t-pid-14248 + sleep 0.3 + test -f t-pid-14248 + sleep 0.3 + test -f t-pid-14248 + sleep 0.3 GNU Shepherd 1.0.2 (Guile 3.0.9, aarch64-unknown-linux-gnu) Starting service root... Service root started. Service root running with value #<<process> id: 14339 command: #f>. Service root has been started. + test -f t-pid-14248 + sleep 0.3 Configuration successfully loaded from 't-conf-14248'. + test -f t-pid-14248 ++ cat t-pid-14248 + shepherd_pid=14339 + herd -s t-socket-14248 start test Starting service test... Service test has been started. + herd -s t-socket-14248 start test2 Starting service test2... Service test2 has been started. + herd -s t-socket-14248 status test + grep running It is running since 21:49:41 (2 seconds ago). + test -f t-service-pid-14248 ++ cat t-service-pid-14248 + service_pid_value=14443 + kill 14443 + kill -0 14443 ./tests/forking-service.sh: line 133: kill: (14443) - No such process + within_seconds 3 'herd -s t-socket-14248 status test | grep stopped' + seconds=3 + '[' 3 -gt 0 ']' + /gnu/store/d7q6yazfa1bxf4x7p9n3b99hn97q6bvw-bash-minimal-5.1.16/bin/bash -c 'herd -s t-socket-14248 status test | grep stopped' + sleep 1 ++ expr 3 - 1 + seconds=2 + '[' 2 -gt 0 ']' + /gnu/store/d7q6yazfa1bxf4x7p9n3b99hn97q6bvw-bash-minimal-5.1.16/bin/bash -c 'herd -s t-socket-14248 status test | grep stopped' + sleep 1 ++ expr 2 - 1 + seconds=1 + '[' 1 -gt 0 ']' + /gnu/store/d7q6yazfa1bxf4x7p9n3b99hn97q6bvw-bash-minimal-5.1.16/bin/bash -c 'herd -s t-socket-14248 status test | grep stopped' + sleep 1 ++ expr 1 - 1 + seconds=0 + cleanup + cat t-log-14248 2025-02-22 21:49:40 GNU Shepherd 1.0.2 (Guile 3.0.9, aarch64-unknown-linux-gnu) 2025-02-22 21:49:40 bit-count is deprecated. Use bitvector-count, or a loop over array-ref if array support is needed. 2025-02-22 21:49:40 scm_bitvector_length is deprecated. Use scm_c_bitvector_length instead. 2025-02-22 21:49:40 Starting service root... 2025-02-22 21:49:40 Service root started. 2025-02-22 21:49:40 Service root running with value #<<process> id: 14339 command: #f>. 2025-02-22 21:49:40 Service root has been started. 2025-02-22 21:49:40 Configuration successfully loaded from 't-conf-14248'. 2025-02-22 21:49:40 Starting service test... 2025-02-22 21:49:41 Service test has been started. 2025-02-22 21:49:41 Service test started. 2025-02-22 21:49:41 Service test running with value #<<process> id: 14443 command: ("/gnu/store/d7q6yazfa1bxf4x7p9n3b99hn97q6bvw-bash-minimal-5.1.16/bin/bash" "-c" "ulimit -n >/tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-service-nofiles-14248; sleep 600 & echo $! > /tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-service-pid-14248")>. 2025-02-22 21:49:42 Starting service test2... 2025-02-22 21:49:43 Service test2 has been started. 2025-02-22 21:49:43 Service test2 started. 2025-02-22 21:49:43 Service test2 running with value #<<process> id: 14486 command: ("/gnu/store/d7q6yazfa1bxf4x7p9n3b99hn97q6bvw-bash-minimal-5.1.16/bin/bash" "-c" "echo started >> /tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-service2-starts-14248; sleep 600 & echo $! > /tmp/guix-build-shepherd-1.0.2.drv-0/shepherd-1.0.2/t-service2-pid-14248")>. + rm -f t-socket-14248 t-conf-14248 t-log-14248 t-service2-starts-14248 t-service-nofiles-14248 + test -f t-pid-14248 ++ cat t-pid-14248 + kill 14339 + rm -f t-pid-14248 Stopping service root... Exiting shepherd... Ignoring error while stopping test: (system-error "getpgid" "~A" ("No such process") (3)) Service test3 is not running. + test -f t-service-pid-14248 Service test4 is not running. Exiting. ++ cat t-service-pid-14248 + kill 14443 ./tests/forking-service.sh: line 40: kill: (14443) - No such process + true + rm -f t-service-pid-14248 + test -f t-service2-pid-14248 ++ cat t-service2-pid-14248 + kill 14486 ./tests/forking-service.sh: line 42: kill: (14486) - No such process + true + rm -f t-service2-pid-14248 FAIL tests/forking-service.sh (exit status: 1)
-- Ricardo