[pve-devel] [PATCH/RFC v2 qemu-server 3/3] restore_vma_archive: remove timeout for reading the device map

Thomas Lamprecht t.lamprecht at proxmox.com
Thu Aug 20 10:53:39 CEST 2020


On 12.08.20 12:01, Fabian Ebner wrote:
> If there is no serious problem, it shouldn't be possible to run into
> this timeout anyways. It's just (extracting and) reading the header of
> the (compressed) vma file. And if there is a serious problem, then the
> commands will most likely fail for a different reason, e.g. unable to open,
> corrupt vma, etc.
> 
> Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
> ---
> 
> New in v2
> 
> Hope I'm not missing anything important.

the process doing the read can hang on IO for a long time, that can be pretty normal,
especially on network attached storage and some IO load.
Not saying that this isn't OK at all, but your commit message suggests misleadingly
that this would either be very short or an immediate error, which isn't exactly true.

> 
>  PVE/QemuServer.pm | 8 --------
>  1 file changed, 8 deletions(-)
> 
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 794819b..342114d 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -6162,8 +6162,6 @@ sub restore_vma_archive {
>  
>      $add_pipe->(['vma', 'extract', '-v', '-r', $mapfifo, $readfrom, $tmpdir]);
>  
> -    my $timeout = 5;
> -
>      my $devinfo = {};
>  
>      my $rpcenv = PVE::RPCEnvironment::get();
> @@ -6260,9 +6258,6 @@ sub restore_vma_archive {
>  	    local $SIG{QUIT} =
>  	    local $SIG{HUP} =
>  	    local $SIG{PIPE} = sub { die "interrupted by signal\n"; };
> -	local $SIG{ALRM} = sub { die "got timeout reading device map\n"; };
> -
> -	alarm($timeout);
>  
>  	my $parser = sub {
>  	    my $line = shift;
> @@ -6273,7 +6268,6 @@ sub restore_vma_archive {
>  		my ($dev_id, $size, $devname) = ($1, $2, $3);
>  		$devinfo->{$devname} = { size => $size, dev_id => $dev_id };
>  	    } elsif ($line =~ m/^CTIME: /) {
> -		alarm(0);
>  		&$print_devmap();
>  		print $fifofh "done\n";
>  		close($fifofh);
> @@ -6285,8 +6279,6 @@ sub restore_vma_archive {
>      };
>      my $err = $@;
>  
> -    alarm(0);
> -
>      $restore_deactivate_volumes->($cfg, $devinfo);
>  
>      unlink $mapfifo;
> 






More information about the pve-devel mailing list