The generic "got timeout" message cannot be associated to a certain code path and also isn't very user-friendly. Use dedicated messages for each stage and also suggest why the timeout for reading the header might have happened, i.e. because it was corrupted.
Suggested-by: Thomas Lamprecht <t.lampre...@proxmox.com> Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> --- PVE/QemuServer.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 7815b608..85e8d74b 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -7537,15 +7537,17 @@ sub restore_vma_archive { my $oldtimeout; eval { + my $timeout_message = "got timeout preparing VMA restore\n"; # enable interrupts local $SIG{INT} = local $SIG{TERM} = local $SIG{QUIT} = local $SIG{HUP} = local $SIG{PIPE} = sub { die "interrupted by signal\n"; }; - local $SIG{ALRM} = sub { die "got timeout\n"; }; + local $SIG{ALRM} = sub { die $timeout_message; }; $oldtimeout = alarm(5); # for reading the VMA header - might hang with a corrupted one + $timeout_message = "got timeout reading VMA header - corrupted?\n"; my $parser = sub { my $line = shift; @@ -7556,6 +7558,7 @@ sub restore_vma_archive { my ($dev_id, $size, $devname) = ($1, $2, $3); $devinfo->{$devname} = { size => $size, dev_id => $dev_id }; } elsif ($line =~ m/^CTIME: /) { + $timeout_message = "got timeout during VMA restore\n"; # we correctly received the vma config, so we can disable # the timeout now for disk allocation alarm($oldtimeout || 0); -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel