public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH storage] extract backup config: less precise matching for broken pipe detection
@ 2021-07-06 13:47 Fabian Ebner
  2021-07-06 15:49 ` [pve-devel] applied: " Thomas Lamprecht
  0 siblings, 1 reply; 2+ messages in thread
From: Fabian Ebner @ 2021-07-06 13:47 UTC (permalink / raw)
  To: pve-devel

Extracting the config for zstd compressed vma files was broken:
    Failed to extract config from VMA archive: zstd: error 70 : Write
    error : cannot write decoded block : Broken pipe (500)
since the error message changed and wouldn't match anymore.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---

Hotfix for now, isn't there a better way to properly handle this?

 PVE/Storage.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/PVE/Storage.pm b/PVE/Storage.pm
index b8e6311..c04b5a2 100755
--- a/PVE/Storage.pm
+++ b/PVE/Storage.pm
@@ -1560,7 +1560,7 @@ sub extract_vzdump_config_vma {
 	my $errstring;
 	my $err = sub {
 	    my $output = shift;
-	    if ($output =~ m/lzop: Broken pipe: <stdout>/ || $output =~ m/gzip: stdout: Broken pipe/ || $output =~ m/zstd: error 70 : Write error : Broken pipe/) {
+	    if ($output =~ m/lzop: Broken pipe: <stdout>/ || $output =~ m/gzip: stdout: Broken pipe/ || $output =~ m/zstd: error 70 : Write error.*Broken pipe/) {
 		$broken_pipe = 1;
 	    } elsif (!defined ($errstring) && $output !~ m/^\s*$/) {
 		$errstring = "Failed to extract config from VMA archive: $output\n";
-- 
2.30.2





^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] applied: [PATCH storage] extract backup config: less precise matching for broken pipe detection
  2021-07-06 13:47 [pve-devel] [PATCH storage] extract backup config: less precise matching for broken pipe detection Fabian Ebner
@ 2021-07-06 15:49 ` Thomas Lamprecht
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2021-07-06 15:49 UTC (permalink / raw)
  To: Proxmox VE development discussion, Fabian Ebner

On 06.07.21 15:47, Fabian Ebner wrote:
> Extracting the config for zstd compressed vma files was broken:
>     Failed to extract config from VMA archive: zstd: error 70 : Write
>     error : cannot write decoded block : Broken pipe (500)
> since the error message changed and wouldn't match anymore.
> 
> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
> ---
> 
> Hotfix for now, isn't there a better way to properly handle this?


meh, properly handling it is a bit of a PITA and that's why we landed here,
which, short of style fixing in the output like with zstd here, served us
surprisingly well.

Properly would probably mean one of:
* make the vma tool understand the compressions, adding in quite some libraries
  for that single use case, so not too ideal..
* saving the config in some other way, e.g., outside of the archive, so that we
  either reverse the pipe direction (vma gets config blob and then decompresses
  it) or avoid compression for the, rather small config file completely
* adding a control fd to VMA where it can tell that it closed OK, that way we
  could ignore any error if we get an OK written from vma to that FD.
  That wouldn't sound to bad actually, but did not really thought it out..

>  PVE/Storage.pm | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

for now that'll do, applied, thanks!




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-07-06 15:49 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-06 13:47 [pve-devel] [PATCH storage] extract backup config: less precise matching for broken pipe detection Fabian Ebner
2021-07-06 15:49 ` [pve-devel] applied: " Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal