Libvirtd termination can hang. For example if some API call in qemu driver awaiting monitor response it will never finish because event loop does not functional during termination. As a result we hang in virNetDaemonClose call during termination as this call finishes RPC threads. Let's ask hypervisor drivers to finish all API calls by calling introduced state driver shutdown function before call to virNetDaemonClose. Nikolay Shirokovskiy (4): libvirt: introduce hypervisor driver shutdown function qemu: implement state driver shutdown function qemu: agent: fix monitor close during first sync qemu: monitor: check monitor not closed upon send daemon/libvirtd.c | 2 ++ src/driver-state.h | 4 ++++ src/libvirt.c | 18 ++++++++++++++++++ src/libvirt_internal.h | 1 + src/libvirt_private.syms | 1 + src/qemu/qemu_agent.c | 14 +++++++------- src/qemu/qemu_driver.c | 39 +++++++++++++++++++++++++++++++++++++++ src/qemu/qemu_monitor.c | 27 +++++++++++++-------------- 8 files changed, 85 insertions(+), 21 deletions(-) -- 1.8.3.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list