public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH storage] lvm: avoid warning due to human-readable text in vgs output
@ 2024-01-11 16:58 Friedrich Weber
  2024-01-12  8:57 ` Fiona Ebner
  2024-01-12  9:22 ` Fabian Grünbichler
  0 siblings, 2 replies; 9+ messages in thread
From: Friedrich Weber @ 2024-01-11 16:58 UTC (permalink / raw)
  To: pve-devel

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);
+
 	    $vgs->{$name} //= {
 		size => int ($size),
 		free => int ($free),
-- 
2.39.2





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

end of thread, other threads:[~2024-01-12 15:45 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-11 16:58 [pve-devel] [PATCH storage] lvm: avoid warning due to human-readable text in vgs output 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
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

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