From 88ce7bac413a7a5722b2ffe53dd844c0d677168a Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Fri, 19 Jul 2019 15:46:33 +0200 Subject: [PATCH] virsh migrate: Properly check for --parallel-connections Ever since --parallel-connections option for virsh migrate was introduced we did not properly check the return value of vshCommandOptInt. We would set VIR_MIGRATE_PARAM_PARALLEL_CONNECTIONS parameter even if vshCommandOptInt returned 0 (which means --parallel-connections was not specified) when another int option which was checked earlier was specified with a nonzero value. Specifically, running virsh migrate with either --auto-converge-increment, --auto-converge-initial, --comp-mt-dthreads, --comp-mt-threads, or --comp-mt-level would set VIR_MIGRATE_PARAM_PARALLEL_CONNECTIONS parameter and if --parallel option was not used, libvirt would complain error: invalid argument: Turn parallel migration on to tune it even though --parallel-connections option was not used at all. https://bugzilla.redhat.com/show_bug.cgi?id=1726643 Signed-off-by: Jiri Denemark Reviewed-by: Michal Privoznik --- tools/virsh-domain.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 828ae30789..2ad73959ec 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -10785,13 +10785,14 @@ doMigrate(void *opaque) goto save_error; } - if (vshCommandOptInt(ctl, cmd, "parallel-connections", &intOpt) < 0) + if ((rv = vshCommandOptInt(ctl, cmd, "parallel-connections", &intOpt)) < 0) { goto out; - if (intOpt && - virTypedParamsAddInt(¶ms, &nparams, &maxparams, - VIR_MIGRATE_PARAM_PARALLEL_CONNECTIONS, - intOpt) < 0) - goto save_error; + } else if (rv > 0) { + if (virTypedParamsAddInt(¶ms, &nparams, &maxparams, + VIR_MIGRATE_PARAM_PARALLEL_CONNECTIONS, + intOpt) < 0) + goto save_error; + } if (vshCommandOptBool(cmd, "live")) flags |= VIR_MIGRATE_LIVE;