@jsalisbury that kernel is very nice, could you please cherrypick that
patch and include it in the next available/convenient src:linux SRU?

I have added the SRU template to the bug report.

** Description changed:

+ [Impact]
+ Kernel does not generate any events when ndb-client connects /dev/nbd0 
devices, therefore it is impossible to monitor/react to the state of /dev/nbd0.
+ 
+ [Fix]
+ Generate change uevent when size of /dev/nbd0 changes
+ 
+ [Testcase]
+ * Start udevadm monitor
+ * modprobe nbd
+ * use ndb-client to connect something to /dev/nbd0
+ * observe that there are change udev events generated on /dev/nbd0 itself
+ 
+ [Regression Potential]
+ There is no change to existing uevents, or their ordering.
+ There is now an addition change event which will cause systemd to mark ndb 
devices as ready and trigger appropriate actions
+ 
+ [Original Bug Report]
+ 
  When using an nbd root, wait-for-root blocks for 30 seconds before
  booting continues successfully.
  
  Using Ubuntu Natty, related packages versions:
-     nbd-client 1:2.9.16-6ubuntu1 
-     initramfs-tools 0.98.1ubuntu9
+     nbd-client 1:2.9.16-6ubuntu1
+     initramfs-tools 0.98.1ubuntu9
  
  The wait-for-root call from /usr/share/initramfs-tools/scripts/local:
-       while [ -z "${FSTYPE}" ]; do
-               FSTYPE=$(wait-for-root "${ROOT}" ${ROOTDELAY:-30})
+  while [ -z "${FSTYPE}" ]; do
+   FSTYPE=$(wait-for-root "${ROOT}" ${ROOTDELAY:-30})
  
-               # Run failure hooks, hoping one of them can fix up the system
-               # and we can restart the wait loop.  If they all fail, abort
-               # and move on to the panic handler and shell.
-               if [ -z "${FSTYPE}" ] && ! try_failure_hooks; then
-                       break
-               fi
-       done
+   # Run failure hooks, hoping one of them can fix up the system
+   # and we can restart the wait loop.  If they all fail, abort
+   # and move on to the panic handler and shell.
+   if [ -z "${FSTYPE}" ] && ! try_failure_hooks; then
+    break
+   fi
+  done
  
  I replaced wait-for-root with a sh script that did `set >&2`, here are the 
relevant environment variables at the time wait-for-root was called:
  ROOT='/dev/nbd0'
  ROOTDELAY=''
  ROOTFLAGS=''
  ROOTFSTYPE=''
  nbdroot='192.168.0.1,2011'
  
  It's probably worth noting that "nbd0: unknown partition table" was
  displayed asynchronously 1-2 seconds after wait-for-root was invoked and
  while it was still waiting. But I tried adding a "sleep 5" as the last
  line of local-top/nbd, so that the nbd message was displayed a lot
  before wait-for-root was called, and it didn't make a difference. So I
  don't think a race condition is involved in this problem.
  
  Temporarily I'm passing rootdelay=1 in the kernel command line to work
  around the problem.

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

Title:
  wait-for-root fails to detect nbd root

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/696435/+subscriptions

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

Reply via email to