Regarding the workaround patch from comment 17, I should note that the workaround involves replacing all whitespace in the NVMe model or serial string with underscores. This matches what is done for the by-id symlinks for scsi, ata, and all other buses. However, another possibility is instead of underscore-replacing the whitespace, it is 'encoded' by replacing it with literal '\x20' (i.e. the characters '\', 'x', '2', '0'). This is done for whitespace in some other symlinks, e.g. LVM and UUID.
Because all existing bus types use underscore replacement already for their symlinks, I think it seems extremely likely that underscore replacement will be used upstream for NVMe as well. However if they don't, then this workaround would conflict with upstream, meaning the workaround would generate symlinks different than upstream udev without this workaround; to use the example from the description, this workaround would create: /dev/disk/by-id/nvme-XYZ_Corp_NVMe_drive_SERIAL -> ../../nvme0n1 while upstream (if the literal-encoding approach is used) would create: /dev/disk/by-id/nvme-XYZ\x20Corp\x20NVMe\x20drive_SERIAL -> ../../nvme0n1 until my patch to upstream is either accepted or rejected (and some other fix used), it's impossible to tell with 100% certainty what approach upstream will decide on. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1647485 Title: NVMe symlinks broken by devices with spaces in model or serial strings To manage notifications about this bug go to: https://bugs.launchpad.net/systemd/+bug/1647485/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
