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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to