
On 03/21/2011 10:34 AM, Daniel P. Berrange wrote:
On Wed, Mar 16, 2011 at 03:48:52PM -0600, Eric Blake wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=684655 points out a regression introduced in commit 2215050edd - non-root users can't connect to qemu:///session because libvirtd dies when it can't use pciaccess initialization.
* src/node_device/node_device_udev.c (udevDeviceMonitorStartup): Don't abort udev driver (and libvirtd overall) if non-root user can't use pciaccess.
if ((pciret = pci_system_init()) != 0) { - char ebuf[256]; - VIR_ERROR(_("Failed to initialize libpciaccess: %s"), - virStrerror(pciret, ebuf, sizeof ebuf)); - ret = -1; - goto out; + /* Ignore failure as non-root; udev is not as helpful in that + * situation, but a non-privileged user won't benefit much + * from udev in the first place. */ + if (privileged || errno != EACCES) { + char ebuf[256]; + VIR_ERROR(_("Failed to initialize libpciaccess: %s"), + virStrerror(pciret, ebuf, sizeof ebuf)); + ret = -1; + goto out; + } }
if (VIR_ALLOC(priv) < 0) {
ACK, though it works fine without this on Fedora 14 hosts. So I guess its only older libpciaccess that has trouble as non-root
Makes sense; my RHEL testing was with libpciaccess-0.10.9, but Fedora 14 is at libpciaccess-0.12.0. Pushed. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org