I think there are 2 things that could be causing this from cloud-init: a.) cloudinit/CloudConfig/cc_resize.py [1] This uses blkid, but almost certainly only passes blkid a device node that represents '/'. It basically does a stat on /, gets major and minor, creates a device node that has the same major, minor and calls blkid on that like: blkid -c /dev/null -sTYPE -ovalue /tmp/THATDEV It does this to find the filesystem type of /.
b.) cloudinit/DataSourceOVF.py [2] This would run early in the boot, and possibly race with fsck. It is trying to determine if each device in /dev matching '^(sr[0-9]+|hd[a-z]|xvd.*)' is a cdrom. Notable in that list is 'xvd.*'. If that a device matching that is not mounted, then we do a read(512) in an attempt to determine if there is media in the CD-ROM drive, and if *that* succeeds, it will try to mount read-only and look for some files, then unmount. It seems to me that 'b' is a potential source of the issue, as either the 'read()' or the mount, check, umount could cause the resource busy option. 2 things that could address that: a.) restrict devices being checked to 'xvd[a-z]' (eliminating the possible mount of /dev/xvda[0-9] entirely. This could still cause issue on other devices like /dev/xvdb. b.) mount with 'ro,noload' (per 'man mount') I'm *guessing* that fsck is trying to open the device in read-only and the mount in 'b' is not truely read-only. Any thoughts on how I can essentially poll these devices looking for "ovf data" and avoid this race? Woudl a badly timed 'read()' interfere with fsck ? (ie, if it was an open RO, not RW?) One thing that would filter out this device would be to filter out non- CD ROM devices, but I actually like the fact that the device does not have to be a CDROM. -- [1] http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/precise/cloud-init/precise/view/head:/cloudinit/CloudConfig/cc_resizefs.py [2] http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/precise/cloud-init/precise/view/head:/cloudinit/DataSourceOVF.py -- You received this bug notification because you are a member of Ubuntu Server Team, which is subscribed to cloud-init in Ubuntu. https://bugs.launchpad.net/bugs/898373 Title: fsck.ext3: Device or resource busy while trying to open /dev/xvda2 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/898373/+subscriptions -- Ubuntu-server-bugs mailing list Ubuntu-server-bugs@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs