[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