[pve-devel] [PATCH storage] base plugin: do not decode the empty string

Maximiliano Sandoval m.sandoval at proxmox.com
Mon Sep 2 14:47:45 CEST 2024


If the json was empty, for example if the qemu-img command times out, a
message

    warn "could not parse qemu-img info command output for '$filename' - $err\n";

would have been printed.

This message could lead one to think the issue lies in the contents of
the json, even if the previous warning said that there was a timeout.

Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
---
 src/PVE/Storage/Plugin.pm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/PVE/Storage/Plugin.pm b/src/PVE/Storage/Plugin.pm
index 6444390f..8cc693c7 100644
--- a/src/PVE/Storage/Plugin.pm
+++ b/src/PVE/Storage/Plugin.pm
@@ -974,6 +974,10 @@ sub file_size_info {
 	# otherwise we warn about it and try to parse the json
 	warn $err_output;
     }
+    if (!$json) {
+	# skip decoding if there was no output, e.g. if there was a timeout.
+	return wantarray ? (undef, undef, undef, undef, $st->ctime) : undef;
+    }
 
     my $info = eval { decode_json($json) };
     if (my $err = $@) {
-- 
2.39.2





More information about the pve-devel mailing list