Comment 11 for bug 802626

Revision history for this message
Eduard Hasenleithner (eduard-hasenleithner) wrote :

The "udevadm control --exit" fix was not supposed to fix this bug. I still have the (occasional) 60 seconds hang at boot. It is just that '/dev' is now moved to rootfs, enabling the filesystems to be mounted rw.

The very same lvm process which waits for the semaphore is the process which set it to 1. It waits for udevd to call the 55-dm.rules rule

ENV{DM_COOKIE}=="?*", RUN+="/sbin/dmsetup udevcomplete $env{DM_COOKIE}"

to be processed. But since udevd is not accepting events after "udevadm control --exit", and any event, which arrived before closing the netlink socket, is discarded, 'vgchange -a y' waits forever.

Reading the documentation of dmsetup, I found the udevcomplete_all option. This might be a means to finish hanging 'vgchange -a y' processes, and could be called from within a init-bottom script of initramfs