Description
The change introduced back in 55401db pauses udev until partition metadata is wiped, but crucially this does not happen until the partition exists (i.e. test -e PARTITION
passes).
On hosts with complex storage topologies the udev managed symlinks under /dev/disk/by-path
are commonly used to identify the installation device.
For example, installing to the disk /dev/disk/by-path/pci-0000:c3:00.0-ata-1
will hang forever waiting for the first partition /dev/disk/by-path/pci-0000:c3:00.0-ata-1-part1
to exist as the generated code in the kickstart file does the following:
udevadm control --stop-exec-queue
parted /dev/disk/by-path/pci-0000:c3:00.0-ata-1 -s -- u s mkpart primary $begin $end
while true; do
sleep 1
udevadm settle --timeout=5
test -e /dev/disk/by-path/pci-0000:c3:00.0-ata-1-part1 && break
done
wipe_metadata /dev/disk/by-path/pci-0000:c3:00.0-ata-1-part1
udevadm control --start-exec-queue
udevadm settle
Side note: I'm not sure if calling udevadm settle
while the queue is stopped is even meaningful.
It's not clear to me how to handle this without breaking the original use-case here, as starting the queue earlier will cause the same LVM related issues as originally described.