** Description changed:

+ SRU Justification:
+ [Impact] 
+   * Boot failures can occur with the wait-for-root utility in P/Q/R due to a 
race condition.
+   * Because of this issue unattended reboots and boots can randomly fail.
+   * The original bug was submitted against Precise LTS.
+ 
+ [Test Case]
+  * Reboot machine and look for "ALERT! /dev/sda1 does not exist. Dropping to 
a shell!". Entering exit from prompt should boot system normally.
+  * We expect that continuous reboots should allow for the machine to boot 
normally without this alert.
+ 
+ [Regression Potential] 
+  * This patch has already been uploaded into Saucy, and tested.
+ 
+ --
+ 
  Moving the discussion from http://www.spinics.net/lists/hotplug/msg05769.html
  to launchpad, for I think that this bug needs to be handled in initramfs-tools
  package rather than in udev package.
  
  ----------
  
  I'm experiencing random boot failures with wait-for-root utility in Ubuntu
  12.04 ( ubuntu-12.04-server-amd64.iso ) on a HP ProLiant DL360p Gen8 server.
  
  For example, wait-for-root waited for only 0.13 seconds before giving up
  at
  
-   FSTYPE=$(wait-for-root "${ROOT}" ${ROOTDELAY:-30})
+   FSTYPE=$(wait-for-root "${ROOT}" ${ROOTDELAY:-30})
  
  line in scripts/local in the initramfs, and  immediately enters into
  
-   panic "ALERT!  ${ROOT} does not exist.  Dropping to a shell!"
+   panic "ALERT!  ${ROOT} does not exist.  Dropping to a shell!"
  
  line.
  
  This is a race condition and manually entering "exit" from the panic prompt
  boots the system normally. This is a critical bug for this environment because
  it will randomly fail to perform unattended reboot (e.g. automatic reboot 
after
  saving kdump).
  
  ----------
  
  I examined main() in wait-for-root using debug fprintf() and it turned out 
that
  udev_monitor_receive_device() is sometimes immediately returning NULL 
(although
  wait-for-root is using blocking socket).
  
  I examined udev_monitor_receive_device() in libudev.so.0 using debug fprintf()
  and it turned out that recvmsg() in udev_monitor_receive_device() (which is in
  libudev-monitor.c in udev package) is returning ENOBUFS error before recvmsg()
  returns information of the root partition.
  
  The wait-for-root utility in initramfs-tools package is not expecting 
recvmsg()
  to return ENOBUFS error. But since ENOBUFS is an inevitable error, I think 
that
  wait-for-root (i.e. the caller of udev_monitor_receive_device()) should handle
  this error.

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

Title:
  wait-for-root fails to wait for plain /dev/sdaX partitions.

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to