Public bug reported: In Ubuntu 24.04, if you call 'parted' or 'partprobe' while holding a file-lock to the disk device (e.g. using 'flock'), then the 'parted' command can end up deadlocked on the internal call to 'udevadm settle'.
It looks like back in 2013, Ubuntu added a patch to libparted that calls `udevadm settle' both before and after partition changes are committed to disk: https://git.launchpad.net/ubuntu/+source/parted/tree/debian/patches/udevadm- settle.patch In Ubuntu 22.04, if you call 'parted' under 'flock', then it works fine. In systemd versions prior to v251, if a udev event was triggered that couldn't be processed because the disk's file-lock was held by another process, then the udev event was simply dropped. This would allow the udev event queue to clear. Which in turn would allow the 'udevadm settle' call to complete. However, in systemd v251 a change was made to the udev event queue where instead of dropping udev events that are blocked by a disk's file-lock, the udev events are instead requeued in a loop. This prevents the udev event queue from clearing. Which in turn blocks the 'udevadm settle' call in 'parted'. https://github.com/systemd/systemd/commit/5d354e525a56955ae7f68062e283dda85ab07794 Systemd's official recommendation is that users should use 'flock' when making changes to partitions. If everyone did that, then I suspect the 'udevadm-settle.patch' patch would not be needed. https://systemd.io/BLOCK_DEVICE_LOCKING/ However, I realize that removing the 'udevadm-settle.patch' patch might be undesirable since it might break back-compat for users that don't use 'flock' with 'parted'. As a workaround, the 'udevadm-settle.patch' patch could be modified to first check if the disk file-lock is held and if it is, assume the user is using 'flock' and don't call 'udevadm settle'. This should hopefully fix the issue for users who use 'flock', while maintaining existing behavior for users who don't use 'flock'. ** Affects: parted (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2087877 Title: Calling "flock parted mkpart" soft deadlocks To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/parted/+bug/2087877/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
