daemon: Raise an error if 'max_workers' < 1 in libvirtd.conf

Hypervisor drivers (e.g. QEMU) assume that they run in a separate
thread from the main event loop thread otherwise deadlocks can
occur. Therefore let's report an error if max_workers < 1 is set in
the libvirtd configuration file.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Marc Hartmayer 2018-07-03 13:37:36 +02:00 committed by John Ferlan
parent 46d258d1fd
commit 71e4d4a2a1

View File

@ -337,6 +337,11 @@ daemonConfigLoadOptions(struct daemonConfig *data,
goto error;
if (virConfGetValueUInt(conf, "max_workers", &data->max_workers) < 0)
goto error;
if (data->max_workers < 1) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("'max_workers' must be greater than 0"));
goto error;
}
if (virConfGetValueUInt(conf, "max_clients", &data->max_clients) < 0)
goto error;
if (virConfGetValueUInt(conf, "max_queued_clients", &data->max_queued_clients) < 0)