@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