[libvirt] Building on Solaris 11 Express

Matthias Bolte matthias.bolte at googlemail.com
Mon May 30 06:52:52 UTC 2011


2011/5/30 Ruben Kerkhof <ruben at rubenkerkhof.com>:
> On Sun, May 29, 2011 at 19:45, Matthias Bolte
> <matthias.bolte at googlemail.com> wrote:
>> 2011/5/29 Richard Laager <rlaager at wiktel.com>:
>>> On Sun, 2011-05-29 at 12:34 +0200, Matthias Bolte wrote:
>>>> > So I tried building libvirt on Solaris 11 Express. The following
>>>> > outlines the trouble (and successes) I've had so far.
>>>>
>>>> I assume your building from up-to-date git here?
>>>
>>> I was using 0.9.1. I should switch to git.
>>>
>>>> '@//.libvirt/libvirt-sock' should actually look like this
>>>> '@/home/<username>/.libvirt/libvirt-sock' as you're running libvirtd
>>>> as non-root it tries to open a UNIX socket in the home directory of
>>>> the user starting it. This path is build via this pattern:
>>>>
>>>>   @<home-directory>/.libvirt/libvirt-sock
>>>
>>> I was actually running it as root.
>>>
>>> Richard
>>>
>>
>> That's even stranger. libvirtd uses geteuid() == 0 to detect if it's
>> running as root and acts upon that. It only tries to open a UNIX
>> socket in the user's home (what it does in your case) when it detects
>> non-root execution. Something is wrong here, but I've no clue what.
>>
>> Matthias
>
> Only linux supports the abstract socket namespace.
> I ran into the same issue on OS X
> (http://www.redhat.com/archives/libvir-list/2010-October/msg00969.html)
>
> Kind regards,
>
> Ruben

Okay, that's a related but different problem, I think.

As far as I understood the situation here Richard is running libvirtd
as root. In that case libvirt should create the UNIX socket in
[/usr/local]/var/run/libvirt/libvirt-sock. Only when running libvirtd
as non-root it creates the UNIX socket in the abstract namespace, but
not in the roor case. Therefore, running libvirtd as root should work
on Solaris. But libvirtd seem to fail to detect being executed as
root. It tries to create the UNIX socket in a broken path in the
abstract namespace and this fails, but this is just a symptom, not the
actual problem.

The question is why, libvirtd thinks it's running as non-root while
Richard says that he's running it as root.

Matthias




More information about the libvir-list mailing list