Package: cryptsetup Version: 2:1.4.3-4 Severity: minor Tags: patch Dear Maintainer,
I have a LUKS container on a removable drive, and wanted cryptdisks_start to automatically open it (using the decrypt_derived keyscript) whenever I plugged it in. An obvious way to achieve this is with a udev script. However, cryptdisks_start calls 'udevadm settle' at a certain point. So any such udev script will deadlock until the default 120 second timeout is reached. Having to wait 2 minutes for the devices for my encrypted USB drive to appear is not really a big deal, but it is annoying. I propose the following patch to /lib/cryptsetup/cryptdisks.functions which checks whether or not the script is being called by a binary called '/sbin/udevd' before calling 'udevadm settle'. This solves my problem, yet I feel like there should be a better way to do this by playing around with --seq-start or --seq-end option to udevadm. I don't really understand the situation that requires that 'udevadm settle' command to be there. A quick googling indicated that that it's important for avoiding a race condition involving the detection of new swap devices. ### BEGIN PATCH ### --- a/lib/cryptsetup/cryptdisks.functions +++ b/lib/cryptsetup/cryptdisks.functions @@ -430,7 +430,12 @@ # Rename the device from its temp name to its final name, which will # trigger mountall finalize_device () { - if [ -x /sbin/udevadm ]; then + local parent_link + + parent_link="/proc/$PPID/exe" + if [ ! -h $parent_link ] || \ + [ "$( /bin/readlink $parent_link )" != "/sbin/udevd" ] && \ + [ -x /sbin/udevadm ]; then udevadm settle fi dmsetup rename "${dst}_unformatted" "$dst" ### END PATCH ### -- Package-specific info: -- /proc/cmdline BOOT_IMAGE=/vmlinuz-3.2.0-4-amd64 root=UUID=fd750c27-b2d1-4bcc-a6f9-339ebea239a1 ro nouveau.blacklist=1 i915.i915_enable_rc6=1 i915.semaphores=1 pcie_aspm=force quiet -- System Information: Debian Release: 7.0 APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages cryptsetup depends on: ii cryptsetup-bin 2:1.4.3-4 ii debconf [debconf-2.0] 1.5.49 ii dmsetup 2:1.02.74-4 ii libc6 2.13-37 Versions of packages cryptsetup recommends: ii busybox 1:1.20.0-7 ii console-setup 1.88 ii initramfs-tools [linux-initramfs-tool] 0.109 ii kbd 1.15.3-9 Versions of packages cryptsetup suggests: ii dosfstools 3.0.13-1 ii liblocale-gettext-perl 1.05-7+b1 -- debconf information: cryptsetup/prerm_active_mappings: true -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org