Ah, I got it. The documentation of udev_monitor_receive_device() says

  "The monitor socket is by default set to NONBLOCK. A variant of poll()
on the file descriptor returned by udev_monitor_get_fd() should to be
used to wake up when new devices arrive, or alternatively the file
descriptor switched into blocking mode."

However, wait-for-root does

        while ((udev_device = udev_monitor_receive_device
(udev_monitor)) != NULL) {

and then just exits. So switching the socket to blocking is indeed the
right answer here.


** Changed in: initramfs-tools (Ubuntu)
   Importance: Undecided => Critical

** Changed in: initramfs-tools (Ubuntu)
       Status: New => In Progress

** Changed in: initramfs-tools (Ubuntu)
     Assignee: (unassigned) => Martin Pitt (pitti)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1154813

Title:
  Boot broken with initramfs-tools 0.103ubuntu0.5b1 - wait-for-root
  doesn't wait

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1154813/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to