Subject: bug#41237: guix deploy hangs when a file-system-device is set to a UUID

From: Brice Waegeneire <[email-masked]>
Date: Wed, 03 Jun 2020 09:51:36 +0000

Hello Ludovic,

On 2020-05-17 22:44, Ludovic Courtès wrote:
> Brice Waegeneire <[email-masked]> skribis:
>> %load-compiled-path))))(begin (use-modules (gnu build file-systems) 
>> (gnu
>> system uuid)) (define uuid (string->uuid "B5DE-B0B9"))
>> (find-partition-by-uuid uuid))
> 
> What if you strace this “guile …/remote-exp.scm” process?  Could it be
> that it’s stuck in ‘find-partition-by-uuid’ because one of the block
> devices doesn’t respond or something?

When manually executing the second 'remote-assertion.scm' file, the one
containing the 'find-partition-by-uuid-bit', it hangs indefinitely, I 
have
attached it's strace to this email.

--8<---------------cut here---------------start------------->8---
$ cat /gnu/store/wzvn8r2z7lnf5mqzagxzcb64wr69kgk4-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/7jpv8kkq13k9xjazrkpq3cm1vz4m5arv-module-import" (map (lambda 
(extension) (string-append extension "/share/guile/site/" 
(effective-version))) extensions)) %load-path)) (set! 
%load-compiled-path (prepend (cons 
"/gnu/store/gac0pvsnc0zvsfxizfqjgg9lig8sf200-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))
# strace -o /tmp/^Crace3.txt guile 
/gnu/store/wzvn8r2z7lnf5mqzagxzcb64wr69kgk4-remote-assertion.scm
--8<---------------cut here---------------end--------------->8---

Note that doing a “guix system reconfigure” on the deploy target with a
config file containing using “(device (uuid ...))“ work, it's only when
using “guix deploy“ that this issue manifest itself.

- Brice