[libvirt] [PATCH 0/4] libvirtd: fix hang on termination in qemu driver

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Wed Oct 25 09:05:04 UTC 2017


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




More information about the libvir-list mailing list