bug#66014: Unable to use UUIDs to construct RAID array in mapped-devices
Ludovic Courtès writes: > Hi, > > Csepp skribis: > >> Lars Rustand writes: > > [...] > >>> But this one fails: >>> >>> (mapped-devices >>> (list >>> (mapped-device >>> (source (list (uuid "a07c54da-eb61-4135-86b8-8791e863e46a") (uuid >>> "c40026af-ace9-47fc-9d3f-4b8d6a2219cb"))) >>> (target "/dev/md0") >>> (type raid-device-mapping >>> >>> The error message I get is guix system: error: #< type: dce bv: >>> #vu8(160 124 84 218 235 97 65 53 134 184 135 145 232 99 228 106)>: invalid >>> G-expression input >>> >>> [[End of PGP Signed Part]] >> >> Would it be possible to use /dev/disk/by-uuid paths instead of uuid >> objects for these? > > Depends: /dev/disk/by-uuid is populated by eudev, which is not running > at the time initrd code runs; IOW it’s OK to use /dev/disk/by-uuid if > and only if the mapped device is not “needed for boot”. > >> I think this big "typeof" based dynamic dispatch that we're using in >> Scheme is erm, not very robust, to put it mildly. > > Yeah, it’s not great. What would you suggest? > > Ludo’. I guess MyPy-for-Guile is a bit out of scope for now, so the next best way to catch these would be property based testing. As for implementing them, can't we use Guile's generics, or model something on Clojure's generics? Something that lets client code add implementations to an interface. Although that might have some security implications.
bug#66014: Unable to use UUIDs to construct RAID array in mapped-devices
Hi, Csepp skribis: > Lars Rustand writes: [...] >> But this one fails: >> >> (mapped-devices >> (list >> (mapped-device >> (source (list (uuid "a07c54da-eb61-4135-86b8-8791e863e46a") (uuid >> "c40026af-ace9-47fc-9d3f-4b8d6a2219cb"))) >> (target "/dev/md0") >> (type raid-device-mapping >> >> The error message I get is guix system: error: #< type: dce bv: >> #vu8(160 124 84 218 235 97 65 53 134 184 135 145 232 99 228 106)>: invalid >> G-expression input >> >> [[End of PGP Signed Part]] > > Would it be possible to use /dev/disk/by-uuid paths instead of uuid > objects for these? Depends: /dev/disk/by-uuid is populated by eudev, which is not running at the time initrd code runs; IOW it’s OK to use /dev/disk/by-uuid if and only if the mapped device is not “needed for boot”. > I think this big "typeof" based dynamic dispatch that we're using in > Scheme is erm, not very robust, to put it mildly. Yeah, it’s not great. What would you suggest? Ludo’.
bug#66014: Unable to use UUIDs to construct RAID array in mapped-devices
Lars Rustand writes: > [[PGP Signed Part:Undecided]] > Setting up a RAID array using UUIDs does not work. > > The following mapped-devices block works: > > (mapped-devices > (list > (mapped-device > (source (list "/dev/nvme0n1p2" "/dev/nvme1n1p3")) > (target "/dev/md0") > (type raid-device-mapping > > But this one fails: > > (mapped-devices > (list > (mapped-device > (source (list (uuid "a07c54da-eb61-4135-86b8-8791e863e46a") (uuid > "c40026af-ace9-47fc-9d3f-4b8d6a2219cb"))) > (target "/dev/md0") > (type raid-device-mapping > > The error message I get is guix system: error: #< type: dce bv: > #vu8(160 124 84 218 235 97 65 53 134 184 135 145 232 99 228 106)>: invalid > G-expression input > > [[End of PGP Signed Part]] Would it be possible to use /dev/disk/by-uuid paths instead of uuid objects for these? I think this big "typeof" based dynamic dispatch that we're using in Scheme is erm, not very robust, to put it mildly.
bug#66014: Unable to use UUIDs to construct RAID array in mapped-devices
Setting up a RAID array using UUIDs does not work. The following mapped-devices block works: (mapped-devices (list (mapped-device (source (list "/dev/nvme0n1p2" "/dev/nvme1n1p3")) (target "/dev/md0") (type raid-device-mapping But this one fails: (mapped-devices (list (mapped-device (source (list (uuid "a07c54da-eb61-4135-86b8-8791e863e46a") (uuid "c40026af-ace9-47fc-9d3f-4b8d6a2219cb"))) (target "/dev/md0") (type raid-device-mapping The error message I get is guix system: error: #< type: dce bv: #vu8(160 124 84 218 235 97 65 53 134 184 135 145 232 99 228 106)>: invalid G-expression input signature.asc Description: PGP signature