[pve-devel] [PATCH qemu-server] cdrom handling: default to "none" if no physical drive is available
Stefan Sterz
s.sterz at proxmox.com
Mon Dec 19 12:23:26 CET 2022
On 12/19/22 10:23, Fiona Ebner wrote:
> Am 16.12.22 um 16:08 schrieb Stefan Sterz:
>> when a vm is configured to use the physical cd rom drive but there is
>> no such drive a cryptic "uninitialized value" error is thrown. this
>> is due to the `$path` not being defined in `sub
>> print_drive_commandline_full` in this case. warn that no cd rom drive
>> is available and default back to using "none" as media instead.
>>
>> note that the error was basically cosmetic as the vm would start just
>> fine.
>>
>> forum thread: https://forum.proxmox.com/threads/use-of-uninitialized-value-path-in-pattern-match-m-at-usr-share-perl5-pve-qemuserver-pm-line-1622.119592/
>
> Note that the thread title is not needed for the link to work:
> https://forum.proxmox.com/threads/119592/
> Would avoid the long line in the commit message :)
>
>>
>> Signed-off-by: Stefan Sterz <s.sterz at proxmox.com>
>> ---
>> PVE/QemuServer.pm | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
>> index dd6ea3e..bc935df 100644
>> --- a/PVE/QemuServer.pm
>> +++ b/PVE/QemuServer.pm
>> @@ -1292,6 +1292,9 @@ sub get_cdrom_path {
>> return $cdrom_path = "/dev/cdrom" if -l "/dev/cdrom";
>> return $cdrom_path = "/dev/cdrom1" if -l "/dev/cdrom1";
>> return $cdrom_path = "/dev/cdrom2" if -l "/dev/cdrom2";
>> +
>> + warn "there is no physical cdrom drive that can be used. defaulting back to 'none'.";
>
> Missing newline at the end of the warning message. Perl will auto-attach
> module and line number then, which gets ugly from a user perspective ;)
>
> Nit: CD-ROM instead of cdrom
>
> IMHO "defaulting back to 'none'." is a bit misleading. We don't actually
> do that in the code, just also return an empty path. And it might sound
> a bit weird to users with the quoted 'none'. Maybe the first sentence is
> already enough or you can reword the message a bit?
>
>> + return '';
>
> Should we cache the fact that there is no drive too? Would potentially
> avoid printing the warning multiple times and testing again.
>
>> }
>>
>> sub get_iso_path {
ah sorry missed the additional points you made here, ignore the v2 i
just sent, ill send a v3.
More information about the pve-devel
mailing list