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(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org