[libvirt] [PATCH 1/2] DO NOT APPLY UPSTREAM: Reproducer

Peter Krempa pkrempa at redhat.com
Tue Jan 14 18:31:17 UTC 2014


Apply this patch and run a patched libvirt daemon. Then start a VM and
kill it's process after few seconds:

 # virsh start VM & sleep 3; killall -9 qemu-kvm

Upstream version doesn't crash but the virsh command returns cryptic
error message:
 error: invalid argument: monitor must not be NULL

0.10.2 and similar downstream versions segfault:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffed467700 (LWP 29256)]
__pthread_mutex_lock (mutex=0x10) at pthread_mutex_lock.c:50
50        unsigned int type = PTHREAD_MUTEX_TYPE (mutex);
Missing separate debuginfos, use: debuginfo-install VirtualBox-4.2-4.2.22_91556_el6-1.x86_64
(gdb) bt
 #0  __pthread_mutex_lock (mutex=0x10) at pthread_mutex_lock.c:50
 #1  0x00007fffe891585e in qemuDomainObjEnterMonitorInternal (driver=0x7fffe00858f0, driver_locked=true, obj=0x7fffe01689c0, asyncJob=<value optimized out>)
     at qemu/qemu_domain.c:1008
 #2  0x00007fffe892662a in qemuProcessDetectVcpuPIDs (driver=0x7fffe00858f0, vm=0x7fffe01689c0) at qemu/qemu_process.c:1831
 #3  0x00007fffe892c417 in qemuProcessStart (conn=0x7fffdc000ae0, driver=0x7fffe00858f0, vm=0x7fffe01689c0, migrateFrom=0x0, stdin_fd=-1, stdin_path=0x0, snapshot=0x0,
     vmop=VIR_NETDEV_VPORT_PROFILE_OP_CREATE, flags=1) at qemu/qemu_process.c:4022
 #4  0x00007fffe8973f3e in qemuDomainObjStart (conn=0x7fffdc000ae0, driver=0x7fffe00858f0, vm=0x7fffe01689c0, flags=<value optimized out>) at qemu/qemu_driver.c:6025
---
 src/qemu/qemu_process.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 9331744..a27eded 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -243,6 +243,8 @@ qemuConnectAgent(virQEMUDriverPtr driver, virDomainObjPtr vm)
                           config,
                           &agentCallbacks);

+    sleep(10);
+
     virObjectLock(vm);
     priv->agentStart = 0;

-- 
1.8.5.2




More information about the libvir-list mailing list