public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH qemu-server] cdrom handling: default to "none" if no physical drive is available
@ 2022-12-16 15:08 Stefan Sterz
  2022-12-19  9:23 ` Fiona Ebner
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Sterz @ 2022-12-16 15:08 UTC (permalink / raw)
  To: pve-devel

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/

Signed-off-by: Stefan Sterz <s.sterz@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'.";
+    return '';
 }
 
 sub get_iso_path {
-- 
2.30.2





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [pve-devel] [PATCH qemu-server] cdrom handling: default to "none" if no physical drive is available
  2022-12-16 15:08 [pve-devel] [PATCH qemu-server] cdrom handling: default to "none" if no physical drive is available Stefan Sterz
@ 2022-12-19  9:23 ` Fiona Ebner
  2022-12-19  9:24   ` Stefan Sterz
  2022-12-19 11:23   ` Stefan Sterz
  0 siblings, 2 replies; 4+ messages in thread
From: Fiona Ebner @ 2022-12-19  9:23 UTC (permalink / raw)
  To: pve-devel, s.sterz

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@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 {




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [pve-devel] [PATCH qemu-server] cdrom handling: default to "none" if no physical drive is available
  2022-12-19  9:23 ` Fiona Ebner
@ 2022-12-19  9:24   ` Stefan Sterz
  2022-12-19 11:23   ` Stefan Sterz
  1 sibling, 0 replies; 4+ messages in thread
From: Stefan Sterz @ 2022-12-19  9:24 UTC (permalink / raw)
  To: Fiona Ebner, pve-devel

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 :)

oh, thanks for the hint! :)

> 
>>
>> Signed-off-by: Stefan Sterz <s.sterz@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 {





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [pve-devel] [PATCH qemu-server] cdrom handling: default to "none" if no physical drive is available
  2022-12-19  9:23 ` Fiona Ebner
  2022-12-19  9:24   ` Stefan Sterz
@ 2022-12-19 11:23   ` Stefan Sterz
  1 sibling, 0 replies; 4+ messages in thread
From: Stefan Sterz @ 2022-12-19 11:23 UTC (permalink / raw)
  To: Fiona Ebner, pve-devel

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@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.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-12-19 11:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-16 15:08 [pve-devel] [PATCH qemu-server] cdrom handling: default to "none" if no physical drive is available Stefan Sterz
2022-12-19  9:23 ` Fiona Ebner
2022-12-19  9:24   ` Stefan Sterz
2022-12-19 11:23   ` Stefan Sterz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal