Bug 474579 - Xen domain cannot be rebooted after restarting xend if it is configured with a mixture of tap and vbd disks
Summary: Xen domain cannot be rebooted after restarting xend if it is configured with ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: xen
Version: 5.4
Hardware: All
OS: Linux
low
medium
Target Milestone: rc
: ---
Assignee: Jiri Denemark
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On: 468971
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-12-04 15:27 UTC by Jiri Denemark
Modified: 2009-12-14 21:21 UTC (History)
1 user (show)

Fixed In Version: xen-3.0.3-85.el5
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-09-02 10:09:01 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Patch to fix this bug (2.51 KB, patch)
2008-12-09 14:33 UTC, Jiri Denemark
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2009:1328 0 normal SHIPPED_LIVE xen bug fix and enhancement update 2009-09-01 10:32:30 UTC

Description Jiri Denemark 2008-12-04 15:27:22 UTC
Description of problem:

Disk reordering fixed by BZ #462727 also happens when a domain is being reconstructed from xenstore after restarting xend.

Version-Release number of selected component (if applicable):

xen-3.0.3-77.el5

How reproducible:

always (requires BZ #468971 to be fixed, otherwise the domain cannot be restarted anyway)

Steps to Reproduce:

1. install a test domain with disk configuration similar to the following one:
disk = [ "tap:aio:/var/lib/xen/images/test.img,xvda,w",'phy:/dev/sdb,xvdb,w']

2. xm create test
3. service xend restart
4. xm reboot test

Actual results:

Traceback (most recent call last):
  File "/usr/bin/pygrub", line 651, in ?
    fs = fsimage.open(file, get_fs_offset(file))
IOError: [Errno 95] Operation not supported
Exception in thread Thread-7:
Traceback (most recent call last):
  File "/usr/lib64/python2.4/threading.py", line 442, in __bootstrap
    self.run()
  File "/usr/lib64/python2.4/threading.py", line 422, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1095, in maybeRestart
    {"destroy"        : self.destroy,
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1881, in restart
    self.configure_bootloader()
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 2007, in configure_bootloader
    self.info['image'])
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendBootloader.py", line 85, in bootloader
    raise VmError, msg
VmError: Boot loader didn't return any data!


Expected results:

Successful reboot

Additional info:

Comment 2 Jiri Denemark 2008-12-09 14:33:45 UTC
Created attachment 326317 [details]
Patch to fix this bug

The attached patch fixes this bug by making the disks() function in XendDomainInfo::sxpr() more general and moving it to XendDomainInfo::getDiskConfigurations(), which is than called not only by XendDomainInfo::sxpr() but also by XendDomainInfo::augmentInfo().

As upstream is also affected but it differs in the original fix for 462727 (by introducing bootable flag instead of fixing device reordering), I created a different patch for upstream which has recently been committed into xen-unstable staging tree as c/s 18885.

Comment 3 Jiri Denemark 2009-02-23 11:08:15 UTC
A test package which fixes this issue (and several others as well) has been
made available at:

http://people.redhat.com/jdenemar/xen/

Could the reporter try it out and report if it fixes the problem or not?

Thank you for your cooperation.

Comment 4 Jiri Denemark 2009-02-23 11:27:30 UTC
Cool stuff, it really works. Great job...

(Oh man, why did I ask myself? :-))

Comment 5 Jiri Denemark 2009-05-11 13:40:35 UTC
Fix built into xen-3.0.3-85.el5

Comment 9 errata-xmlrpc 2009-09-02 10:09:01 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2009-1328.html


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