Browse Source

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.
gn-latest-20200725
Maxim Cournoyer 1 year ago
parent
commit
0dd04b9986
No known key found for this signature in database GPG Key ID: 1260E46482E63562
  1. 7
      gnu/machine/ssh.scm

7
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

Loading…
Cancel
Save