[Bug 898373] Re: fsck.ext3: Device or resource busy while trying to open /dev/xvda2
Scott Moser
smoser at ubuntu.com
Tue Feb 14 02:19:46 UTC 2012
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
More information about the Ubuntu-server-bugs
mailing list