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

Reply via email to