pvestatd runs the update loop for every network device present on the
host. This includes many dynamically created / removed network
interfaces (tap devices, veths, fw bridges). This triggers a warning
if the network device isn't yet in the cached version of the ip link
output:

pvestatd[1011]: Use of uninitialized value in string eq at 
/usr/share/perl5/PVE/Network.pm line 998.

Silently fail such errors for now, since they should normally affect
only such dynamically created devices and no physical devices. Even
for hotplugged physical devices this should be corrected the next time
the ip link cache gets invalidated. The worst case scenario in this
case is at most 15 minutes of missing netin/out metrics for that link.

Reported-by: Hannes Dürr <h.du...@proxmox.com>
Reported-by: Max Carrara <m.carr...@proxmox.com>
Signed-off-by: Stefan Hanreich <s.hanre...@proxmox.com>
---
 PVE/Service/pvestatd.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/PVE/Service/pvestatd.pm b/PVE/Service/pvestatd.pm
index b7cb06b18..0b338899e 100755
--- a/PVE/Service/pvestatd.pm
+++ b/PVE/Service/pvestatd.pm
@@ -189,7 +189,7 @@ sub update_node_status {
     for my $dev (keys %$netdev) {
         my $ip_link = $cached_ip_links->{$dev};
 
-        if (PVE::Network::ip_link_is_physical($ip_link)) {
+        if ($ip_link && PVE::Network::ip_link_is_physical($ip_link)) {
             $netdev->{$dev}->{type} = 'physical';
         } else {
             $netdev->{$dev}->{type} = 'virtual';
-- 
2.47.2


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to