[pve-devel] [PATCH storage] fix #585: remove leftover disks/directory after VM creation failed
Christian Ebner
c.ebner at proxmox.com
Mon Mar 4 16:47:06 CET 2019
When trying to create a qcow2 disk image with a size larger than available on the
storage, this will fail.
As qemu-img does not clean up the disk afterwards, it needs to be deleted
explicitly. Further, the vmid folder is cleaned up once it is empty.
Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
---
PVE/Storage/GlusterfsPlugin.pm | 7 ++++++-
PVE/Storage/Plugin.pm | 7 ++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/PVE/Storage/GlusterfsPlugin.pm b/PVE/Storage/GlusterfsPlugin.pm
index 1f9465f..b3e5553 100644
--- a/PVE/Storage/GlusterfsPlugin.pm
+++ b/PVE/Storage/GlusterfsPlugin.pm
@@ -274,7 +274,12 @@ sub alloc_image {
push @$cmd, '-f', $fmt, $volumepath, "${size}K";
- run_command($cmd, errmsg => "unable to create image");
+ eval { run_command($cmd, errmsg => "unable to create image"); };
+ if ($@) {
+ unlink $path;
+ rmdir $imagedir;
+ die "$@";
+ }
return "$vmid/$name";
}
diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm
index 10c2c73..7964441 100644
--- a/PVE/Storage/Plugin.pm
+++ b/PVE/Storage/Plugin.pm
@@ -665,7 +665,12 @@ sub alloc_image {
push @$cmd, '-f', $fmt, $path, "${size}K";
- run_command($cmd, errmsg => "unable to create image");
+ eval { run_command($cmd, errmsg => "unable to create image"); };
+ if ($@) {
+ unlink $path;
+ rmdir $imagedir;
+ die "$@";
+ }
}
return "$vmid/$name";
--
2.11.0
More information about the pve-devel
mailing list