One way to reproduce the bugs is to set admin_max_workers=0 in
libvirtd.conf, restart libvirtd, and then call:
$ virt-admin server-threadpool-info admin
Changelog:
v1->v2:
- Worked in Daniel Berrangé's comments that:
1. max_workers=0 should not be allowed for the libvirtd (patch 3)
2. it shouldn't be allowed to switch between zero and non-zero
max_workers (patch 4)
- Changed the deadlock fix (patch 1)
- Added two small fixes (patch 5 and 6)
Marc Hartmayer (6):
rpc: Fix deadlock if there is no worker pool available
rpc: Initialize a worker pool for max_workers=0 as well
virThreadPool: Prevent switching between zero and non-zero maxWorkers
daemon: Raise an error if 'max_workers' < 1 in libvirtd.conf
virt-admin: Fix two error messages
rpc: Fix name of include guard
src/libvirt_private.syms | 4 ++
src/remote/remote_daemon_config.c | 5 +++
src/rpc/virnetserver.c | 28 ++++++++------
src/rpc/virnetserverprogram.h | 4 +-
src/util/virthreadpool.c | 81 ++++++++++++++++++++++++++++++---------
src/util/virthreadpool.h | 8 ++++
tools/virt-admin.c | 5 ++-
7 files changed, 101 insertions(+), 34 deletions(-)
--
2.13.4