From b4682b7333c0a27d5f0cb94fec24b0b8b26586d5 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Mon, 26 Oct 2020 09:49:35 +0100 Subject: [PATCH] qemu: Don't try to start NBD server twice In one of recent patches the way that we start NBD server for incoming migration was reworked (v6.8.0-rc1~298). A new boolean was introduced that tracks whether the NBD server was started so that we don't start it twice nor record in the port in the port allocator twice. Well, this idea is good, but in the implementation the boolean is never set, so we are reserving the port twice and would be starting the NBD server twice too if it wasn't for port reservation fail. Fixes: e74d627bb3bc2684cbe3edc1e2f7cc745b4e1ff3 Reported-by: Vjaceslavs Klimovs Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- src/qemu/qemu_migration.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 2f5d61f8e7..6f764b0c73 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -479,9 +479,11 @@ qemuMigrationDstStartNBDServer(virQEMUDriverPtr driver, QEMU_ASYNC_JOB_MIGRATION_IN) < 0) goto cleanup; - if (!server_started && - qemuMonitorNBDServerStart(priv->mon, &server, tls_alias) < 0) - goto exit_monitor; + if (!server_started) { + if (qemuMonitorNBDServerStart(priv->mon, &server, tls_alias) < 0) + goto exit_monitor; + server_started = true; + } if (qemuBlockExportAddNBD(vm, diskAlias, disk->src, diskAlias, true, NULL) < 0) goto exit_monitor;