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.
This commit is contained in:
Maxim Cournoyer 2020-06-18 21:12:35 -04:00
parent e520aa8f41
commit 0dd04b9986
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 3 additions and 4 deletions

View File

@ -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