Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 230702 - Fails to boot raw tap image
Summary: Fails to boot raw tap image
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: xen
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Daniel Berrange
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-03-02 12:01 UTC by Mark McLoughlin
Modified: 2007-11-30 22:11 UTC (History)
3 users (show)

Fixed In Version: xen-3.0.4-7.fc7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-03-20 16:01:04 UTC


Attachments (Terms of Use)
xen-3.0.4-boot-raw-tap.patch (deleted)
2007-03-02 12:01 UTC, Mark McLoughlin
no flags Details | Diff

Description Mark McLoughlin 2007-03-02 12:01:11 UTC
With xen-3.0.4-6fc7, and a configuration like this:

disk = [ "tap:aio:/tmp/test.img,xvda,w" ]

I'm seeing this:

----
[2007-03-02 10:08:09 xend.XendDomainInfo 2900] DEBUG (XendDomainInfo:94)
XendDomainInfo.create(['vm', ['name', 'test'], ['memory', 512], ['maxmem', 512],
['on_poweroff', 'destroy'], ['on_reboot', 'restart'], ['on_crash', 'restart'],
['vcpus', 1], ['on_xend_start', 'ignore'], ['on_xend_stop', 'ignore'], ['uuid',
'9e68f448-1a66-87f3-c327-69ecc7187692'], ['bootloader', '/usr/bin/pygrub'],
['image', ['linux', ['kernel', '/var/run/xend/boot/boot_kernel.9ZEo8m'],
['ramdisk', '/var/run/xend/boot/boot_ramdisk.i29Kd6'], ['args', 'ro
root=/dev/VolGroup00/LogVol00']]], ['device', ['tap', ['uname',
'tap:aio:/tmp/test.img'], ['dev', 'xvda'], ['mode', 'w']]], ['device', ['vif',
['bridge', 'xenbr0'], ['mac', '00:16:3e:6c:05:00']]]])
[2007-03-02 10:08:09 xend.XendConfig 2900] WARNING (XendConfig:607) Unconverted
key: cpus
[2007-03-02 10:08:09 xend.XendDomainInfo 2900] DEBUG (XendDomainInfo:1284)
XendDomainInfo.constructDomain
[2007-03-02 10:08:09 xend.XendDomainInfo 2900] DEBUG (XendDomainInfo:1330)
XendDomainInfo.initDomain: 1 256
[2007-03-02 10:08:09 xend.XendDomainInfo 2900] INFO (XendDomainInfo:1572)
Mounting /tmp/test.img on /dev/xvdp.
[2007-03-02 10:08:09 xend.XendDomainInfo 2900] DEBUG (XendDomainInfo:2035)
create_vbd_with_vdi: {'device': '/dev/xvdp', 'image': '/tmp/test.img', 'mode': 'RO'}
[2007-03-02 10:08:09 xend 2900] DEBUG (DevController:115) DevController: writing
{'backend-id': '0', 'virtual-device': '51952', 'device-type': 'disk', 'state':
'1', 'backend': '/local/domain/0/backend/tap/0/51952'} to
local/domain/0/device/vbd/51952
.
[2007-03-02 10:08:09 xend 2900] DEBUG (DevController:117) DevController: writing
{'domain': 'Domain-0', 'frontend': '/local/domain/0/device/vbd/51952', 'uuid':
'cf6bf81e-bbb4-ec20-1e8a-9ce7d540fcdd', 'dev': '/dev/xvdp', 'state': '1',
'params': 'qcow:/tmp/test.img', 'mode': 'r', 'online': '1', 'frontend-id': '0',
'type': 'tap'} to /local/domain/0/backend/tap/0/51952.
[2007-03-02 10:08:09 xend 2900] DEBUG (DevController:153) Waiting for 51952.
[2007-03-02 10:08:09 xend 2900] DEBUG (DevController:522) hotplugStatusCallback
/local/domain/0/backend/tap/0/51952/hotplug-status.
[2007-03-02 10:08:09 xend 2900] DEBUG (DevController:522) hotplugStatusCallback
/local/domain/0/backend/tap/0/51952/hotplug-status.
[2007-03-02 10:08:09 xend 2900] DEBUG (DevController:536) hotplugStatusCallback 1.
[2007-03-02 10:08:09 xend 2900] ERROR (XendBootloader:39) Disk isn't accessible
[2007-03-02 10:08:09 xend.XendDomainInfo 2900] INFO (XendDomainInfo:1590)
Unmounting /dev/xvdp from /dev/xvdp.
----

Don't you just love when things go wrong with Xen? "Disk isn't accessible"?
Geez, thanks.

So, it turns out that the problem is this:

[2007-03-02 10:08:09 xend 2900] DEBUG (DevController:117) DevController: writing
{'domain': 'Domain-0', ..., 'dev': '/dev/xvdp', ..., 'params':
'qcow:/tmp/test.img', ..., 'type': 'tap'} to /local/domain/0/backend/tap/0/51952.

This is a raw image, not a QCOW image, so it's failing to mount the image.

However, we're only trying to mount the image for pygrub, since pygrub can't
handle e.g. QCOW files directly. But it can handle raw images just fine.

So, attaching a patch to not attempt to mount the image if it's raw, which fixes
the bug for me.

(It doesn't fix the case of e.g. using pygrub with a vmdk image, but *shrug*)

Comment 1 Mark McLoughlin 2007-03-02 12:01:11 UTC
Created attachment 149104 [details]
xen-3.0.4-boot-raw-tap.patch

Comment 2 Stephen Tweedie 2007-03-02 12:21:12 UTC
Same problem for me.  How does 3.0.5 fix this?


Comment 3 Mark McLoughlin 2007-03-02 12:48:51 UTC
What makes you think it does?

From looking at xen-unstable, it looks like it has the same problem ... I'll be
sending the patch upstream.

Comment 4 Daniel Berrange 2007-03-02 12:52:36 UTC
It doesn't AFAICT - 3.0.5 looks just as broken as 3.0.4 since the code in
question is basically identical. Mark's patch looks good and should be sent
upstream. I'll add the fix to rawhide.

Comment 5 Mark McLoughlin 2007-03-09 07:33:11 UTC
Okay, I've made a couple of attempts to push it upstream. No response, and it
hasn't made it into the tree:

  http://lists.xensource.com/archives/html/xen-devel/2007-03/msg00156.html
  http://lists.xensource.com/archives/html/xen-devel/2007-03/msg00304.html

Comment 6 Mark McLoughlin 2007-03-20 16:01:04 UTC
It's upstream now:

  changeset:   14443:09f2e758a198
  parent:      14441:4e380c769774
  user:        Mark McLoughlin <markmc@redhat.com>
  date:        Tue Mar 20 11:10:52 2007 +0000
  summary:     Don't mount raw blktap disks for pygrub

So, it's in rawhide and upstream. Closing.



Note You need to log in before you can comment on or make changes to this bug.