Bug 709471 - fails to start in Xen PV domU
fails to start in Xen PV domU
Product: Fedora
Classification: Fedora
Component: libvirt (Show other bugs)
Unspecified Unspecified
unspecified Severity medium
: ---
: ---
Assigned To: Daniel Veillard
Fedora Extras Quality Assurance
Depends On:
  Show dependency treegraph
Reported: 2011-05-31 15:00 EDT by Soren Hansen
Modified: 2011-09-08 06:48 EDT (History)
10 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2011-09-08 06:48:14 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Soren Hansen 2011-05-31 15:00:41 EDT
Description of problem:
Xen PV domU's have no PCI bus (at least as seen on Rackspace's Cloud Servers). libvirt's src/node_device/node_device_udev.c calls pci_system_init which looks for /sys/bus/pci. If it does not find /sys/bus/pci (which it won't in a Xen PV domU) it returns unsuccesfully, which libvirt considers fatal.

It's perfectly reasonable to want to run libvirt in a paravirt Xen domU, e.g. for running LXC, QEmu or UML guests. Additionally, the PCI check is disabled on s390, and a failing check is ignored for qemu:///session, so I don't see how it can be absolutely required for qemu:///system on non-s390.

Version-Release number of selected component (if applicable):
Observed in 0.8.8 and onwards. Perhaps it appeared earlier.

How reproducible:

Steps to Reproduce:
1. Fire up a Xen PV domU (e.g. on Rackspace Cloud Servers)
2. Attempt to start libvirtd as root.
3. Fail.
Actual results:
It fails, saying something like:
libpciaccess: No such file or directory.

Expected results:
It should start, and whatever functionality depends on pci access should simply be disabled. Since s390 gets away with this, it should be feasible.

Additional info:
Comment 1 Eric Blake 2011-09-08 06:48:14 EDT
Fix is now upstream, and will be part of libvirt 0.9.5:

commit 9c7283166f667967d9d435ba233178f07af2eee0
Author: Soren Hansen <soren@linux2go.dk>
Date:   Mon Sep 5 21:29:06 2011 +0200

    Don't treat pci_system_init failure as fatal if no PCI bus is present
    Xen PV domU's have no PCI bus. node_device_udev.c calls pci_system_init
    won't in a Xen PV domU) it returns unsuccesfully (ENOENT), which libvirt
    considers fatal. This makes libvirt unusable in this environment, even
    though there are plenty of valid virtualisation options that work
    there (LXC, UML, and QEmu spring to mind)

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