apteryx pushed a commit to branch master
in repository guix.

commit 0dd04b9986dd834782c988035569089785a6987d
Author: Maxim Cournoyer <[email protected]>
AuthorDate: Thu Jun 18 21:12:35 2020 -0400

    machine: ssh: Fix guix deploy hang when using non-DCE UUIDs.
    
    Fixes <https://issues.guix.gnu.org/issue/41237>.
    
    The UUID type information was lost when passing to the lower gexp code 
strata,
    which led to not being able to recreate the UUID in the generated script.
    This occurred for non-DCE type UUIDs such as that of a FAT file system.
    
    A following commit will prevent the find-partition-by-uuid procedure from
    entering a loop when its UUID argument is invalid.
    
    Reported-by: Brice Waegeneire <[email protected]>
    
    * gnu/machine/ssh.scm (machine-check-file-system-availability): Replace the
    STRING->UUID procedure by the UUID macro, and provide the UUID type as its
    second argument.
---
 gnu/machine/ssh.scm | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index 116da86..7194181 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -210,10 +210,9 @@ exist on the machine."
             (use-modules (gnu build file-systems)
                          (gnu system uuid))
 
-            (define uuid
-              (string->uuid #$(uuid->string (file-system-device fs))))
-
-            (find-partition-by-uuid uuid))))
+            (let ((uuid (uuid #$(uuid->string (file-system-device fs))
+                              '#$(uuid-type (file-system-device fs)))))
+              (find-partition-by-uuid uuid)))))
 
     (remote-let ((result remote-exp))
       (unless result

Reply via email to