[pve-devel] [PATCH common] tools: dump logfile: fix result type in case the file cannot be opened

Friedrich Weber f.weber at proxmox.com
Thu Jul 17 18:50:01 CEST 2025


The second return value of dump_logfile should be a reference to an
array of hash references (one per log line), but in case the file
cannot be opened, it currently directly returns a reference to a hash.

As a result, the /nodes/{node}/tasks/{upid}/log endpoint response does
not match the schema in case the task log cannot be opened (for
example, does not exist). This was reported in enterprise support, as
it trips up external monitoring tools that query this endpoint.

To fix this, make sure to return an array.

This technically also affects the endpoints that query the Ceph,
replication, and firewall logs, though there it is more likely that
the logfile actually exists and can be opened.

Signed-off-by: Friedrich Weber <f.weber at proxmox.com>
---

Notes:
    proxmox-perltidy makes a small formatting change (to pre-existing code
    in Tools.pm) that I didn't include here.

 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 948ef5e..fe9616e 100644
--- a/src/PVE/Tools.pm
+++ b/src/PVE/Tools.pm
@@ -1426,7 +1426,7 @@ sub dump_logfile {
 
     my $fh = IO::File->new($filename, "r");
     if (!$fh) {
-        return (1, { n => 1, t => "unable to open file - $!" });
+        return (1, [{ n => 1, t => "unable to open file - $!" }]);
     }
 
     my %state = (
-- 
2.47.2





More information about the pve-devel mailing list