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 <[email protected]>
Reviewed-by: Boris Fiuczynski <[email protected]>
Reviewed-by: Bjoern Walk <[email protected]>
---
 src/remote/remote_daemon_config.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/remote/remote_daemon_config.c 
b/src/remote/remote_daemon_config.c
index b1516befb4a6..27e0c635f1be 100644
--- a/src/remote/remote_daemon_config.c
+++ b/src/remote/remote_daemon_config.c
@@ -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)
-- 
2.13.4

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to