--- Begin Message ---
Subject: |
guix deploy hangs when a file-system-device is set to a UUID |
Date: |
Wed, 13 May 2020 15:57:58 +0000 |
User-agent: |
Roundcube Webmail/1.3.8 |
Hey Guix,
Here is an other “guix deploy” bug: setting a file-system-device field
to a
UUID makes deploy hangs indefinitely. Using a string (eg.: "/dev/sda1")
instead, “guix deploy” succeed. Following is an output showing it
hanging:
--8<---------------cut here---------------start------------->8---
$ guix deploy -Lmodules systems/hystou-p04.scm
guix deploy: warning: failed to load '(config workstation)':
no code for module (gnu services lightdm)
The following 1 machine will be deployed:
abricot
guix deploy: deploying to abricot...
The following derivations will be built:
/gnu/store/q021ynnwnn3b0py7vp682i980aamcbhy-remote-exp.scm.drv
/gnu/store/bifn8l2lqh34rn5w6ca9x3n16ji9qh31-remote-assertion.scm.drv
building
/gnu/store/bifn8l2lqh34rn5w6ca9x3n16ji9qh31-remote-assertion.scm.drv...
building
/gnu/store/q021ynnwnn3b0py7vp682i980aamcbhy-remote-exp.scm.drv...
sending 2 store items (0 MiB) to '192.168.10.10'...
--8<---------------cut here---------------end--------------->8---
On the host side, when “guix deploy” is hanging:
--8<---------------cut here---------------start------------->8---
$ ps -aux | grep remote-exp
root 1910 197 0.2 81756 37812 ? Rsl 15:47 2:00
/gnu/store/0m0vd873jp61lcm4xa3ljdgx381qa782-guile-3.0.2/bin/guile
--no-auto-compile -L
/gnu/store/waw3q9xvwz6wivp4skmirxpg53znrs3h-module-import -C
/gnu/store/waw3q9xvwz6wivp4skmirxpg53znrs3h-module-import -c (begin
(use-modules (guix repl)) (send-repl-response (quote
(with-output-to-port (current-error-port) (lambda () (primitive-load
"/gnu/store/2xh7fzjk1hrz45w2bn1p6fi994f6lkrp-remote-exp.scm"))))
(current-output-port)) (force-output))
bricewge 1919 0.0 0.0 6372 1748 pts/0 S+ 15:48 0:00 grep
remote-exp
$ cat /gnu/store/2xh7fzjk1hrz45w2bn1p6fi994f6lkrp-remote-exp.scm
#!/gnu/store/18hp7flyb3yid3yp49i6qcdq0sbi5l1n-guile-3.0.2/bin/guile
--no-auto-compile
!#
(map (lambda (file) (false-if-exception (primitive-load file))) (quote
("/gnu/store/y0dhva989bqyqqin18d2rkxd4fbkznxi-remote-assertion.scm"
"/gnu/store/cbyixyqc7rslp5nwxh3np1h9jbwpk7pk-remote-assertion.scm"
"/gnu/store/apvm855zplmp2cl38hw5ych4d559gza6-remote-assertion.scm")))
$ cat /gnu/store/y0dhva989bqyqqin18d2rkxd4fbkznxi-remote-assertion.scm
(catch (quote system-error) (lambda () (stat "/dev/sda3") #t) (lambda
args (system-error-errno args)))% abricot% cat
/gnu/store/cbyixyqc7rslp5nwxh3np1h9jbwpk7pk-remote-assertion.scm
(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/6sy0ignb9mhrxqaq43yqn0sxy4vjxvdk-module-import" (map (lambda
(extension) (string-append extension "/share/guile/site/"
(effective-version))) extensions)) %load-path)) (set!
%load-compiled-path (prepend (cons
"/gnu/store/ag9kc8igsc6gcd12sr4h2qp6bgapzfih-module-import-compiled"
(map (lambda (extension) (string-append extension "/lib/guile/"
(effective-version) "/site-ccache")) extensions))
%load-compiled-path))))(begin (use-modules (gnu build file-systems) (gnu
system uuid)) (define uuid (string->uuid "B5DE-B0B9"))
(find-partition-by-uuid uuid))
$ cat /gnu/store/cbyixyqc7rslp5nwxh3np1h9jbwpk7pk-remote-assertion.scm
(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/6sy0ignb9mhrxqaq43yqn0sxy4vjxvdk-module-import" (map (lambda
(extension) (string-append extension "/share/guile/site/"
(effective-version))) extensions)) %load-path)) (set!
%load-compiled-path (prepend (cons
"/gnu/store/ag9kc8igsc6gcd12sr4h2qp6bgapzfih-module-import-compiled"
(map (lambda (extension) (string-append extension "/lib/guile/"
(effective-version) "/site-ccache")) extensions))
%load-compiled-path))))(begin (use-modules (gnu build file-systems) (gnu
system uuid)) (define uuid (string->uuid "B5DE-B0B9"))
(find-partition-by-uuid uuid))
$ cat /gnu/store/apvm855zplmp2cl38hw5ych4d559gza6-remote-assertion.scm
(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/88hn0npj9xs099amjbsl7gjh9j3fy1yb-module-import" (map (lambda
(extension) (string-append extension "/share/guile/site/"
(effective-version))) extensions)) %load-path)) (set!
%load-compiled-path (prepend (cons
"/gnu/store/865zg228hasfmv879g8y12n8i2s8si0f-module-import-compiled"
(map (lambda (extension) (string-append extension "/lib/guile/"
(effective-version) "/site-ccache")) extensions))
%load-compiled-path))))(begin (use-modules (gnu build file-systems) (gnu
build linux-modules) (gnu system uuid)) (define dev "/dev/sda3")
(missing-modules dev (quote ("ahci" "usb-storage" "uas" "usbhid"
"hid-generic" "hid-apple" "dm-crypt" "xts" "serpent_generic" "wp512"
"nls_iso8859-1" "pata_acpi" "pata_atiixp" "isci" "virtio_pci"
"virtio_balloon" "virtio_blk" "virtio_net" "virtio_console"
"virtio-rng"))))
--8<---------------cut here---------------end--------------->8---
- Brice
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#41237: guix deploy hangs when a file-system-device is set to a UUID |
Date: |
Thu, 18 Jun 2020 23:31:05 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Hello Brice and Ludovic,
Ludovic Courtès <ludo@gnu.org> writes:
> Hi Brice,
>
> Brice Waegeneire <brice@waegenei.re> skribis:
>
>> scheme@(guix-user) [1]> ,up
>> In gnu/system/uuid.scm:
>> 302:5 3 (uuid=? . _)
>> scheme@(guix-user) [1]> ,locals
>> Local variables:
>> $8 = closure = #<procedure uuid=? expr>
>> $9 = w = #vu8(185 176 222 181)
>> While executing meta-command:
>> In procedure frame-local-ref: Argument 2 out of range: 3
>> scheme@(guix-user) [1]> ,up
>> 4 (find #<procedure 7f9a930bd570 at
>> gnu/build/file-systems.scm:606:4 (device)> ("/dev/sda" "/dev/sda1"
>> "/dev/sda2" "/dev/sda3" "/dev/sdb" "/dev/sdb2" "/dev/sdb3"))
>
> So all we can say, is that one of the “partition readers” in (gnu build
> file-systems) hangs while reading from one of these.
>
> I don’t have good advice other than trying to run the code by hand to
> find out which device/reader pair causes the problem.
>
> I hope that makes sense. We can further debug this on IRC if you want.
>
> Thanks,
> Ludo’.
Fixed with 0dd04b9986dd834782c988035569089785a6987d and
04a4af6dd4fbfcfc564eac5eafe647b192ba3a8f. Thanks to Ludovic for the
pointers and both of you for recording the very useful above debugging
session.
Closing,
Maxim
--- End Message ---