On 10/6/20 10:56 AM, Mira Limbeck wrote:
On 10/5/20 5:35 PM, Thomas Lamprecht wrote:
On 28.09.20 10:36, Mira Limbeck wrote:
After migration or a rollback the cloudinit disk might not be
allocated, so
volume_size_info() fails. As we override the value anyway for cloudinit
and efi disks simply move the volume_size_info() call into the 'else'
branch.
Signed-off-by: Mira Limbeck <m.limb...@proxmox.com>
---
v2: changed subject
PVE/QemuServer.pm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 2747c66..49765b7 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -6895,10 +6895,10 @@ sub clone_disk {
$storeid = $storage if $storage;
my $dst_format = resolve_dst_disk_format($storecfg,
$storeid, $volname, $format);
- my ($size) = PVE::Storage::volume_size_info($storecfg,
$drive->{file}, 3);
print "create full clone of drive $drivename
($drive->{file})\n";
my $name = undef;
+ my $size = undef;
if (drive_is_cloudinit($drive)) {
$name = "vm-$newvmid-cloudinit";
$name .= ".$dst_format" if $dst_format ne 'raw';
@@ -6906,6 +6906,8 @@ sub clone_disk {
$size = PVE::QemuServer::Cloudinit::CLOUDINIT_DISK_SIZE;
} elsif ($drivename eq 'efidisk0') {
$size = get_efivars_size($conf);
+ } else {
+ ($size) = PVE::Storage::volume_size_info($storecfg,
$drive->{file}, 3);
}
$size /= 1024;
doesn't this logs a "use of undefined value in division" or something
like that
somewhere in the non-else case?
No, in the cloudinit case we set it to a constant. In the efidisk case
we call get_efivars_size() which dies if efivars is not a file,
otherwise we get a size (-s). And in the else case we also die if we
can't get the size. So size is set in every case before the first use.
To clarify, the returned size in volume_size_info can be undefined, but
not the other 2 cases. Would a die be a good idea in case the
volume_size_info call returns 'undef'?
$newvolid = PVE::Storage::vdisk_alloc($storecfg, $storeid,
$newvmid, $dst_format, $name, $size);
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel