From: Thomas Lamprecht Date: Wed, 15 Jan 2020 07:12:22 +0000 (+0100) Subject: api: vm clone: unlink zombie target config at end of error cleanup X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=990b65ab60b9943341d7e61dc60b7016a983354b;hp=c05c90a10df19f4abee61f8031fbe5b1cf618066;p=qemu-server.git api: vm clone: unlink zombie target config at end of error cleanup This is the guarantee that this call operates on it's created config. A VMID cannot be reused afterall. So only remove the guarantee at the last step, just before throwing up the error message about the clone failure. Signed-off-by: Thomas Lamprecht --- diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index f5e757a..0d543ff 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -2931,8 +2931,6 @@ __PACKAGE__->register_method({ PVE::AccessControl::add_vm_to_pool($newid, $pool) if $pool; }; if (my $err = $@) { - unlink $conffile; - eval { PVE::QemuServer::qemu_blockjobs_cancel($vmid, $jobs) }; sleep 1; # some storage like rbd need to wait before release volume - really? @@ -2943,6 +2941,8 @@ __PACKAGE__->register_method({ PVE::Firewall::remove_vmfw_conf($newid); + unlink $conffile; # avoid races -> last thing before die + die "clone failed: $err"; }