[Pkg-libvirt-maintainers] Bug#973758: In debian buster: libvirtd fails to release lock on resources and crashes

Katerina Koukiou kkoukiou at redhat.com
Wed Nov 4 16:33:11 GMT 2020


Package: libvirt0
Architecture: amd64
Version: 5.0.0-4+deb10u1

In the cockpit [1] project, I have noticed sometimes this libvirt
crash in our CI tests. It seems like libivirt crashes when test tests
try to remove all libvirt resources available on the system,
thus it performs, virsh destroy/undefined, virsh pool-destroy/undefine
etc for all resources at the end of each test.

I know the reproducer is really value but maybe you can take a look in
the following stack trace, I got it with debug symbols installed:

root at debian:/home/admin/libvirtd# gdb /usr/sbin/libvirtd
core.libvirtd.1002.6d98a59e010946b29e1cddaa8e44bd2c.12589.1604483844000000
...
Reading symbols from /usr/sbin/libvirtd...Reading symbols from
/usr/lib/debug/.build-id/17/171df3fcb3a47a224d747b795dff324fa96157.debug...done.
done.
[New LWP 13800]
[New LWP 12591]
[New LWP 12592]
[New LWP 12593]
[New LWP 12594]
[New LWP 12595]
[New LWP 12596]
[New LWP 12597]
[New LWP 12598]
[New LWP 12599]
[New LWP 12600]
[New LWP 12605]
[New LWP 12606]
[New LWP 12607]
[New LWP 12608]
[New LWP 12609]
[New LWP 12589]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/sbin/libvirtd --timeout=30'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __GI___pthread_mutex_lock (mutex=mutex at entry=0x0) at
../nptl/pthread_mutex_lock.c:67
67    ../nptl/pthread_mutex_lock.c: No such file or directory.
[Current thread is 1 (Thread 0x7f7783fff700 (LWP 13800))]
(gdb) bt full
#0  __GI___pthread_mutex_lock (mutex=mutex at entry=0x0) at
../nptl/pthread_mutex_lock.c:67
        type = <optimized out>
        __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
        id = <optimized out>
#1  0x00007f77b21004d5 in virMutexLock (m=m at entry=0x0) at
../../../src/util/virthread.c:89
No locals.
#2  0x00007f77a843b4de in qemuDriverLock (driver=0x0) at
../../../src/qemu/qemu_conf.c:1062
No locals.
#3  virQEMUDriverGetConfig (driver=0x0) at ../../../src/qemu/qemu_conf.c:1062
        conf = <optimized out>
#4  0x00007f77a848029c in qemuStateStop () at
../../../src/qemu/qemu_driver.c:998
        ret = -1
        conn = <optimized out>
        numDomains = 0
        i = <optimized out>
        state = 32631
        domains = 0x0
        flags = 0x0
        cfg = <optimized out>
        __FUNCTION__ = "qemuStateStop"
#5  0x00007f77b229845f in virStateStop () at ../../../src/libvirt.c:737
        i = 8
        ret = 0
#6  0x000055cbb217c3fd in daemonStopWorker (opaque=0x55cbb334a500) at
../../../src/remote/remote_daemon.c:725
        __x = <optimized out>
        dmn = 0x55cbb334a500
        __func__ = "daemonStopWorker"
#7  0x00007f77b2100382 in virThreadHelper (data=<optimized out>) at
../../../src/util/virthread.c:206
        args = 0x0
        local = {func = 0x55cbb217c3c0 <daemonStopWorker>, funcName =
0x55cbb21af004 "daemonStopWorker", worker = false, opaque =
0x55cbb334a500}
#8  0x00007f77b1771fa3 in start_thread (arg=<optimized out>) at
pthread_create.c:486
        ret = <optimized out>
        pd = <optimized out>
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140151292425984,
7462251322524822461, 140733687626798, 140733687626799,
140151292425984, 140151561871456, -7394846862332138563,
-7394808450710639683}, mask_was_saved = 0}}, priv = {
            pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup =
0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#9  0x00007f77b16964cf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.


Let me know if I can help any furthet for debugging,
Katerina

[1]: https://github.com/cockpit-project/cockpit/



More information about the Pkg-libvirt-maintainers mailing list