Re: LVM tools segfault since 2.03.12

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dne 02. 09. 21 v 21:10 Jean-Michel Pollion napsal(a):
Le jeudi 02 septembre 2021 à 19:21 +0200, Zdenek Kabelac a écrit :
Dne 02. 09. 21 v 17:49 Jean-Michel Pollion napsal(a):
Le jeudi 02 septembre 2021 à 16:11 +0200, Zdenek Kabelac a écrit :
Dne 02. 09. 21 v 9:34 Jean-Michel Pollion napsal(a):
Hello,

I have the lvm2 tools segfaulting since 2.03.12 with a message
of
unsorted commands in cmds.h.
It turns out that in my locale and on my setup, the LANG=C
setting
before "sort -u" in tools/Makefile.in is not enough, I had to
patch
and
add LC_COLLATE=C too, or the rules will not count the
underscore
while
sorting, causing the segfault in the code (command.c IIRC).
This broke the boot on some of my servers, so I think it's a
rather
big
problem that perhaps can't be caught in reproducible builds.
Can this be corrected upstream or should I just modify my build
environment for LVM2?

Hi

Interesting - can you send a patch to Makefile  to include
LC_COLLATE=C
in case it does fixes your problem
I fixed it with a sed, the resulting patch is attached:
--- LVM2.2.03.13-orig/tools/Makefile.in 2021-08-11
17:37:43.000000000
+0200
+++ LVM2.2.03.13/tools/Makefile.in      2021-09-02
17:41:42.113702990
+0200
@@ -181,7 +181,7 @@
          ( cat $(srcdir)/license.inc && \
            echo "/* Do not edit. This file is generated by the
Makefile.
*/" && \
            echo "cmd(CMD_NONE, none)" && \
-         $(GREP) '^ID:' $(srcdir)/command-lines.in | LANG=C
$(SORT) -u
$(AWK) '{print "cmd(" $$2 "_CMD, " $$2 ")"}' && \
+         $(GREP) '^ID:' $(srcdir)/command-lines.in | LANG=C
LC_COLLATE=C $(SORT) -u | $(AWK) '{print "cmd(" $$2 "_CMD, " $$2
")"}'
&& \
            echo "cmd(CMD_COUNT, count)" \
          ) > $@

And does it also work if you set  LC_ALL=C   (instead of LANG=C
LC_COLLATE=C) ?
Yes, it works also with LC_ALL=C alone (without either LANG_C or
LC_COLLATE=C), I replaced LANG=C by LC_ALL=C in the Makefile and it
worked perfectly, as expected, as LC_ALL is supposed to supersede LANG.


So thanks for checking,  I'll push this fix then.


Regards


Zdenek

_______________________________________________
linux-lvm mailing list
linux-lvm@xxxxxxxxxx
https://listman.redhat.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/




[Index of Archives]     [Gluster Users]     [Kernel Development]     [Linux Clusters]     [Device Mapper]     [Security]     [Bugtraq]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]

  Powered by Linux