[libvirt] [PATCH] qemu: pass "-1" as uid/gid for unprivileged qemu

Doug Goldstein cardoe at gentoo.org
Mon Feb 18 18:09:32 UTC 2013


On Sun, Feb 17, 2013 at 7:12 PM, Doug Goldstein <cardoe at gentoo.org> wrote:
> On Sun, Feb 17, 2013 at 11:33 AM, Guido Günther <agx at sigxcpu.org> wrote:
>> so we don't try to change uid/git to 0 when probing capabilities.
>> ---
>>
>> On Fri, Feb 15, 2013 at 11:20:17PM -0600, Doug Goldstein wrote:
>>> The following error bisect's down to this commit when running out of
>>> my local checkout for testing.
>>>
>>> 2013-02-16 05:16:55.102+0000: 29992: error : virCommandWait:2270 :
>>> internal error Child process (LC_ALL=C
>>> LD_LIBRARY_PATH=/home/cardoe/work/libvirt/src/.libs
>>> PATH=/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3:/usr/games/bin
>>> HOME=/home/cardoe USER=cardoe LOGNAME=cardoe /usr/bin/qemu-kvm -help)
>>> unexpected exit status 1: libvir:  error : internal error cannot apply
>>> process capabilities -1
>>
>> This is due to:
>>
>> debug : virExec:641 : Setting child uid:gid to 0:0 with caps 0
>>
>> We're trying to change capabilities even on qemu:///session. This
>> unbreaks the libvirt-tck jenkins test suite as well.
>>
>>  src/qemu/qemu_driver.c |    8 ++++++--
>>  1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>> index 23499ef..dc35b91 100644
>> --- a/src/qemu/qemu_driver.c
>> +++ b/src/qemu/qemu_driver.c
>> @@ -556,6 +556,8 @@ qemuStartup(bool privileged,
>>      char *membase = NULL;
>>      char *mempath = NULL;
>>      virQEMUDriverConfigPtr cfg;
>> +    uid_t run_uid = -1;
>> +    gid_t run_gid = -1;
>>
>>      if (VIR_ALLOC(qemu_driver) < 0)
>>          return -1;
>> @@ -707,11 +709,13 @@ qemuStartup(bool privileged,
>>                                   cfg->snapshotDir, cfg->user, cfg->group);
>>              goto error;
>>          }
>> +        run_uid = cfg->user;
>> +        run_gid = cfg->group;
>>      }
>>
>>      qemu_driver->qemuCapsCache = virQEMUCapsCacheNew(cfg->libDir,
>> -                                                     cfg->user,
>> -                                                     cfg->group);
>> +                                                     run_uid,
>> +                                                     run_gid);
>>      if (!qemu_driver->qemuCapsCache)
>>          goto error;
>>
>> --
>> 1.7.10.4
>
> ACK. Resolves the issue for me and the change looks good.
>
> --
> Doug Goldstein

Thanks. Pushed.

-- 
Doug Goldstein




More information about the libvir-list mailing list