On Wed, Aug 09, 2023 at 03:44:24PM +0200, Christoph Heiss wrote: > `$size` and `$logical_bsize` might get unset if there invalid, but then > are unconditionally converted to an int - which throws an error. > This was reported on the forum by a user [0]. > > Fix it by changing the check a bit to skip the disk immediately if > detecting either of those two values are invalid or simply not present. > The fix for `$logical_bsize` simply avoids trying to convert to value to > an int if invalid. > > tl;dr: Should have no impact at all, in the end. The same > `run-env-info.json` is generated w/ and w/o the patch if all disks are > fine. I then also hacked up the script a bit to actually have an invalid > size, this resulted in the "affected" disk simply missing from the disk > array - the expected behavior in this case. > > [0] https://forum.proxmox.com/threads/error-installing-proxmox-8.131921/ > > Signed-off-by: Christoph Heiss <c.he...@proxmox.com> > --- > Proxmox/Sys/Block.pm | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/Proxmox/Sys/Block.pm b/Proxmox/Sys/Block.pm > index 26085e3..f76e0f1 100644 > --- a/Proxmox/Sys/Block.pm > +++ b/Proxmox/Sys/Block.pm > @@ -90,10 +90,10 @@ my sub hd_list { > } > > my $size = file_read_firstline("$bd/size"); > + next if !$size; > chomp $size; > - $size = undef if !($size && $size =~ m/^\d+$/); > + next if $size !~ m/^\d+$/; > $size = int($size); > - next if !$size;
^ not sure it makes sense to remove this, but OTOH, file_read_firstline already chomps, so the first one already catches at least the zero-sized device case (which btw. is easily reproducible by simply plugging in a card reader without a card inserted ;-) ) _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel