/dev/disk/by-path not properly populated for (e)SATA port multiplier disks
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
systemd (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
We have a just-installed Ubuntu 16.04 LTS machine with a number of disks behind port-multiplier eSATA ports, all of them driven by a SiI 3124 controller (sata_sil24 kernel driver). Our machine sees all disks on all channels, however under 16.04 only one disk from each channel shows up in /dev/disk/by-path/ (all disks show up in /dev/disk/by-id and /dev/disk/by-uuid). For our usage this is a severe defect because we rotate disks in and out of the external enclosure and rely on mounting specific slots in the external enclosure through /dev/disk/by-path.
This did not happen in Ubuntu 12.04 LTS, the release that this machine was previously running.
According to 'udevadm info --export-db' and 'udevadm test-builtin path_id' and so on, systemd's udev stuff is assigning all drives behind the same port the same disk/by-path data (ID_PATH et al). In 'udevadm info /sys/block/sdX', the 'P:' and 'E: DEVPATH=' values show a difference in the target portion of PCI path, eg:
P: /devices/
P: /devices/
However the 'S: disk/by-path', 'E: DEVLINKS=', and 'E: ID_PATH' portions do not. For both devices above, we see:
S: disk/by-
E: ID_PATH=
Naturally only one device can have a /dev/disk/
Ubuntu release: 16.04
Package versions from 'apt-cache policy udev systemd':
udev:
Installed: 229-4ubuntu7
systemd:
Installed: 229-4ubuntu7
'journalctl -b' reports that during boot systemd does report some 'appeared twice with different sysfs paths' notes, eg:
Aug 10 13:34:21 verdandi systemd[1]: dev-disk-
However it doesn't seem to be reporting this for all port-multiplier drives and their partitions.
If it would be useful I can attach full 'udevadm info --export-db' output or the like.
Chris: block/sda
Could you attach the output of
sudo udevadm test /sys/class/
?