[pve-devel] [PATCH pve-manager 1/1] pvestatd: prevent warnings for non-existing network devices
Stefan Hanreich
s.hanreich at proxmox.com
Wed Jul 30 14:44:48 CEST 2025
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.duerr at proxmox.com>
Reported-by: Max Carrara <m.carrara at proxmox.com>
Signed-off-by: Stefan Hanreich <s.hanreich at 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
More information about the pve-devel
mailing list