From c1d62a9d54d97cc4a3b0b2dba1a55b71ea5d5330 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Tue, 12 Nov 2019 13:56:20 +0100 Subject: [PATCH] fix Tools::df for big storage usage values if the size/avail of a mount is bigger than a certain amount, json_encode writes the number in scientific format, which was not matched by our \d+ regex. This then resulted in 'undef' values for the result hash and subsequently led to errors and warnings. Extend the regex to also match scientific formatted numbers, perl can then use them as is, no need for any conversion. https://forum.proxmox.com/threads/bug-in-pve-tools-df-when-adding-petabyte-scale-storage.60090/#post-277050 Signed-off-by: Dominik Csapak Signed-off-by: Thomas Lamprecht --- src/PVE/Tools.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm index 02c2886..89de4ec 100644 --- a/src/PVE/Tools.pm +++ b/src/PVE/Tools.pm @@ -1008,7 +1008,7 @@ sub df { warn $@ if $@; # untaint the values - my ($blocks, $used, $bavail) = map { defined($_) ? (/^(\d+)$/) : 0 } + my ($blocks, $used, $bavail) = map { defined($_) ? (/^([\d\.e\-+]+)$/) : 0 } # can be in scientific notation $res->@{qw(blocks used bavail)}; return {