[libvirt-users] libvrtd-1.1.0 crashes when attempting to start some (but not all) LXC containers

Dennis Jenkins dennis.jenkins.75 at gmail.com
Mon Jul 15 12:53:18 UTC 2013


On Mon, Jul 15, 2013 at 7:37 AM, Dennis Jenkins <dennis.jenkins.75 at gmail.com
> wrote:

> Ah ha!  I just learned about "gdb bt full".  The existing core dump might
> have what you need: Line #442.  However, the line numbers for the source
> code in the source tree that my Gentoo system is building from does not
> match exactly what you listed.
>
> Line #442 for me is the one containing the "STREQ" macro:
>
>     virObjectLock(mgr);
>
>     for (i = 0; i < vm->nseclabels; i++) {
>         for (j = 0; sec_managers[j]; j++)
>             if (STREQ(vm->seclabels[i]->model, sec_managers[j]->drv->name))
>                 break;
>
>
> I can rebuild with "-O0" and try again.  If I can still trigger the crash,
> the backtrace might have useful values for the optimized variables.  I'll
> post again in a few minutes.
>
> On Mon, Jul 15, 2013 at 7:06 AM, Dennis Jenkins <
> dennis.jenkins.75 at gmail.com> wrote:
>
>>
>> On Mon, Jul 15, 2013 at 3:18 AM, Michal Privoznik <mprivozn at redhat.com>wrote:
>>
>>>
>>> Interesting. If you are still able to reproduce the crash, can you try
>>> to get the line number within virSecurityManagerGenLabel where the crash
>>> happened? I think it's the STREQ line (440 linenr). Question is whether
>>> model or name is NULL.
>>>
>>>
>>
>> I'll try.
>>
>> I'm not sure why GDB failed to list line numbers in the backtrace.  I
>> will recompile libvirt with "-O0 -g3" and try again.
>>
>>

TL;DR: "vm->seclabels[i]->model" is NULL.


(gdb) bt full
#0  0x00007ffff6fc5d76 in __strcmp_sse42 () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007ffff76e2ae2 in virSecurityManagerGenLabel (mgr=0x7fffe40bef20,
vm=0x7fffd00097a0)
    at security/security_manager.c:442
        ret = -1
        i = 0
        j = 0
        sec_managers = 0x7fffd8003e60
        seclabel = 0x7ffff74c4911 <virAllocN+54>
        generated = false
        __FUNCTION__ = "virSecurityManagerGenLabel"
        __func__ = "virSecurityManagerGenLabel"



(gdb) list 436,450
436         if ((sec_managers = virSecurityManagerGetNested(mgr)) == NULL)
437             return ret;
438
439         virObjectLock(mgr);
440         for (i = 0; i < vm->nseclabels; i++) {
441             for (j = 0; sec_managers[j]; j++)
442                 if (STREQ(vm->seclabels[i]->model,
sec_managers[j]->drv->name))
443                     break;
444
445             if (!sec_managers[j]) {
446                 virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
447                                _("Unable to find security driver for
label %s"),
448                                vm->seclabels[i]->model);
449                 goto cleanup;
450             }

(gdb) frame 1
#1  0x00007ffff76e2ae2 in virSecurityManagerGenLabel (mgr=0x7fffe40bef20,
vm=0x7fffd00097a0)
    at security/security_manager.c:442
442                 if (STREQ(vm->seclabels[i]->model,
sec_managers[j]->drv->name))

(gdb) print vm->nseclabels
$1 = 1

(gdb) print sec_managers
$2 = (virSecurityManagerPtr *) 0x7fffd8003e60

(gdb) print sec_managers[0]
$3 = (virSecurityManagerPtr) 0x7fffe40bef20

(gdb) print vm->seclabels[i]->model
$4 = 0x0

(gdb) print sec_managers[j]->drv->name
$5 = 0x7ffff77729c0 "none"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20130715/321cdc7c/attachment.htm>


More information about the libvirt-users mailing list