diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2020-06-18 21:12:35 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2020-06-18 23:20:41 -0400 |
commit | 0dd04b9986dd834782c988035569089785a6987d (patch) | |
tree | 5b600e4001166342d0a90e688c04ffeaff42f01a | |
parent | e520aa8f41a8dbdbcee4e3537364f1d451583012 (diff) | |
download | guix-0dd04b9986dd834782c988035569089785a6987d.tar guix-0dd04b9986dd834782c988035569089785a6987d.tar.gz |
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 <brice@waegenei.re>
* 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.
-rw-r--r-- | gnu/machine/ssh.scm | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm index 116da86327..7194181681 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 |