From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 4977DE37E for ; Fri, 22 Apr 2022 10:23:55 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 3DCBB25A59 for ; Fri, 22 Apr 2022 10:23:55 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 7C22225A4F for ; Fri, 22 Apr 2022 10:23:54 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 4536F426A9 for ; Fri, 22 Apr 2022 10:15:51 +0200 (CEST) From: Fabian Ebner To: pmg-devel@lists.proxmox.com Date: Fri, 22 Apr 2022 10:15:46 +0200 Message-Id: <20220422081546.20112-1-f.ebner@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.088 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com, procfstools.pm] Subject: [pmg-devel] [RFC pve-common] procfs tools: handle proc/stat without guest values X-BeenThere: pmg-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Mail Gateway development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Apr 2022 08:23:55 -0000 PMG is often run as a container, and in certain environments (Parallels?), the last two values (guest and guest_nice) might not be present. This led to a division by zero, because the total value was never updated. Reported in the community forum: https://forum.proxmox.com/threads/106896/ Signed-off-by: Fabian Ebner --- src/PVE/ProcFSTools.pm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/PVE/ProcFSTools.pm b/src/PVE/ProcFSTools.pm index 88df5d2..d636427 100644 --- a/src/PVE/ProcFSTools.pm +++ b/src/PVE/ProcFSTools.pm @@ -168,9 +168,9 @@ sub read_proc_stat { if (my $fh = IO::File->new ("/proc/stat", "r")) { while (defined (my $line = <$fh>)) { - if ($line =~ m|^cpu\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)|) { - $res->{user} = $1 - $9; - $res->{nice} = $2 - $10; + if ($line =~ m|^cpu\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)(?:\s+(\d+)\s+(\d+))?|) { + $res->{user} = $1 - ($9 // 0); + $res->{nice} = $2 - ($10 // 0); $res->{system} = $3; $res->{idle} = $4; $res->{used} = $1+$2+$3+$6+$7+$8; @@ -178,8 +178,8 @@ sub read_proc_stat { $res->{irq} = $6; $res->{softirq} = $7; $res->{steal} = $8; - $res->{guest} = $9; - $res->{guest_nice} = $10; + $res->{guest} = $9 // 0; + $res->{guest_nice} = $10 // 0; } elsif ($line =~ m|^cpu\d+\s|) { $cpucount++; } -- 2.30.2