Bug 474579 - Xen domain cannot be rebooted after restarting xend if it is configured with a mixture of tap and vbd disks
Xen domain cannot be rebooted after restarting xend if it is configured with ...
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: xen (Show other bugs)
All Linux
low Severity medium
: rc
: ---
Assigned To: Jiri Denemark
Virtualization Bugs
Depends On: 468971
  Show dependency treegraph
Reported: 2008-12-04 10:27 EST by Jiri Denemark
Modified: 2009-12-14 16:21 EST (History)
1 user (show)

See Also:
Fixed In Version: xen-3.0.3-85.el5
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2009-09-02 06:09:01 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

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

  None (edit)
Description Jiri Denemark 2008-12-04 10:27:22 EST
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):


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
  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
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 2007, in configure_bootloader
  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 09:33:45 EST
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 06:08:15 EST
A test package which fixes this issue (and several others as well) has been
made available at:


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 06:27:30 EST
Cool stuff, it really works. Great job...

(Oh man, why did I ask myself? :-))
Comment 5 Jiri Denemark 2009-05-11 09:40:35 EDT
Fix built into xen-3.0.3-85.el5
Comment 9 errata-xmlrpc 2009-09-02 06:09:01 EDT
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.


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