When I checked all the place where calling qemuDriverLock(), I found some problem. The details of the problem is here: https://www.redhat.com/archives/libvir-list/2011-March/msg01409.html When I modify the function processWatchdogEvent(), I found that wdEvent->vm may be freed before processWatchdogEvent() is called. Wen Congyang (3): qemu: avoid qemu_driver being unlocked twice when virThreadPoolNew() failed qemu: unlock qemu driver and vm before returning from processWatchdogEvent() hold an extra reference while handling watchdog event src/qemu/qemu_driver.c | 34 +++++++++++++++++++++++++--------- src/qemu/qemu_process.c | 4 ++++ 2 files changed, 29 insertions(+), 9 deletions(-) -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list