public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH storage] lvm: avoid warning due to human-readable text in vgs output
Date: Fri, 12 Jan 2024 10:22:14 +0100	[thread overview]
Message-ID: <1705047462.e8upimiin2.astroid@yuna.none> (raw)
In-Reply-To: <20240111165826.804669-1-f.weber@proxmox.com>

On January 11, 2024 5:58 pm, Friedrich Weber wrote:
> If the metadata archive under /etc/lvm/archive for a particular VG has
> a lot of files or is overly large, `vgs` occasionally prints a message
> to stdout [1]. The LVM plugin tries to parse this message and thus
> produces the following confusing warnings in the output of `pvesm
> status` or the journal (via pvestatd):
> 
> Use of uninitialized value $size in int at [...]/LVMPlugin.pm line 133
> Use of uninitialized value $free in int at [...]/LVMPlugin.pm line 133
> Use of uninitialized value $lvcount in int [...]/LVMPlugin.pm line 133
> 
> Reported in enterprise support where LVM picked up on VGs on VM disks
> (due to a missing KRBD device filter in the LVM config), and since
> several VM disks had VGs with the same name, LVM quickly produced a
> lot of files in /etc/lvm/archive.
> 
> Reproducible as follows with a VG named `spam`:
> 
>     for i in $(seq 8192);
>     do vgrename spam spam2; vgrename spam2 spam; done
>     rm /etc/lvm/backup/spam; vgs -o vg_name
> 
> Output (linebreak for readability):
> 
>     Consider pruning spam VG archive with more then 8 MiB in 8268\n
>     files (check archiving is needed in lvm.conf).
>     VG
>     spam
> 
> [1] https://sourceware.org/git/?p=lvm2.git;a=blob;f=lib/format_text/archive.c;h=5acf0c04a;hb=38e0c7a1#l222
> 
> Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
> ---
>  src/PVE/Storage/LVMPlugin.pm | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/PVE/Storage/LVMPlugin.pm b/src/PVE/Storage/LVMPlugin.pm
> index 4b951e7..557d602 100644
> --- a/src/PVE/Storage/LVMPlugin.pm
> +++ b/src/PVE/Storage/LVMPlugin.pm
> @@ -130,6 +130,9 @@ sub lvm_vgs {
>  
>  	    my ($name, $size, $free, $lvcount, $pvname, $pvsize, $pvfree) = split (':', $line);
>  
> +	    # skip human-readable messages that vgs occasionally prints to stdout
> +	    return if !defined($size);
> +

we might want to either log this message (like anything printed to
STDERR), so that the admin at least can notice something weird is going
on, or pass '-qq' to switch `vgs` into silent mode where no such
messages will be printed - although for the latter variant we might want
to check what (else) gets suppressed ("log_print_unless_silent")..

AFAICT this message only gets printed if the archives grew very big, and
the backup file does not exist? at least for me using your reproducer,
it's only printed once, and I have to rename rename rm again afterwards
to get it to show up again, which would mean it's not too bad to log it
(as long as it doesn't confuse our code).

the `lvmscan` endpoint also picks up the line btw, which means it ends
up being included in the "VG" selector on the web UI when adding an LVM
storage ;)

>  	    $vgs->{$name} //= {
>  		size => int ($size),
>  		free => int ($free),
> -- 
> 2.39.2
> 
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> 
> 
> 




  parent reply	other threads:[~2024-01-12  9:22 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-11 16:58 Friedrich Weber
2024-01-12  8:57 ` Fiona Ebner
2024-01-12  9:09   ` Friedrich Weber
2024-01-12  9:30     ` Fiona Ebner
2024-01-12  9:22 ` Fabian Grünbichler [this message]
2024-01-12 10:06   ` Friedrich Weber
2024-01-12 10:28     ` Fabian Grünbichler
2024-01-12 15:11       ` Friedrich Weber
2024-01-12 15:45         ` Fiona Ebner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1705047462.e8upimiin2.astroid@yuna.none \
    --to=f.gruenbichler@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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