41 lines
1.9 KiB
Diff
41 lines
1.9 KiB
Diff
|
commit 86cae503a4404e068a11285564a0ee3862d1570c
|
||
|
Author: Daniel P. Berrangé <berrange@redhat.com>
|
||
|
Date: Tue Mar 6 17:56:57 2018 +0000
|
||
|
|
||
|
rpc: avoid crashing in pre-exec if no workers are present
|
||
|
|
||
|
If max_workers is set to zero, then the worker thread pool won't be
|
||
|
created, so when serializing state for pre-exec we must set various
|
||
|
parameters to zero.
|
||
|
|
||
|
Reviewed-by: John Ferlan <jferlan@redhat.com>
|
||
|
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
|
||
|
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||
|
|
||
|
Index: libvirt-4.1.0/src/rpc/virnetserver.c
|
||
|
===================================================================
|
||
|
--- libvirt-4.1.0.orig/src/rpc/virnetserver.c
|
||
|
+++ libvirt-4.1.0/src/rpc/virnetserver.c
|
||
|
@@ -580,18 +580,21 @@ virJSONValuePtr virNetServerPreExecResta
|
||
|
goto error;
|
||
|
|
||
|
if (virJSONValueObjectAppendNumberUint(object, "min_workers",
|
||
|
+ srv->workers == NULL ? 0 :
|
||
|
virThreadPoolGetMinWorkers(srv->workers)) < 0) {
|
||
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||
|
_("Cannot set min_workers data in JSON document"));
|
||
|
goto error;
|
||
|
}
|
||
|
if (virJSONValueObjectAppendNumberUint(object, "max_workers",
|
||
|
+ srv->workers == NULL ? 0 :
|
||
|
virThreadPoolGetMaxWorkers(srv->workers)) < 0) {
|
||
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||
|
_("Cannot set max_workers data in JSON document"));
|
||
|
goto error;
|
||
|
}
|
||
|
if (virJSONValueObjectAppendNumberUint(object, "priority_workers",
|
||
|
+ srv->workers == NULL ? 0 :
|
||
|
virThreadPoolGetPriorityWorkers(srv->workers)) < 0) {
|
||
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||
|
_("Cannot set priority_workers data in JSON document"));
|