Bug#982454: lvm2: vgremove segfaults in libc-2.24.so

2021-02-28 Thread Bernhard Übelacker

Dear Maintainer,
I tried to reproduce the issue and got a segfault [2]
when trying to vgremove inside a i386 qemu VM
with version lvm2 2.02.168-2.
Attached file contains the steps taken.

This upstream commit sounds related. [1]

Kind regards,
Bernhard


[1] lvmetad: fix segfault on i386

https://sourceware.org/git/?p=lvm2.git;a=commit;h=46b735c937ce68e72d08997635321bf30240325d

https://sourceware.org/git/?p=lvm2.git;a=patch;h=46b735c937ce68e72d08997635321bf30240325d


[2]
(gdb) bt
#0  __strchr_sse2_bsf () at 
../sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S:97
#1  0x0050b29f in config_make_nodes_v (cft=0x64fae0, parent=0x0, pre_sib=0x64fd48, 
ap=0xb92c "\365\nP") at config-util.c:248
#2  0x0050c5f7 in daemon_request_extend_v (r=..., ap=0xb90c 
"\354\224U") at daemon-client.c:218
#3  0x004fe622 in _lvmetad_send (cmd=0x606840, id=) at 
cache/lvmetad.c:435
#4  0x00500b6c in lvmetad_vg_remove_pending (vg=0x66aa28) at 
cache/lvmetad.c:1304
#5  0x004b366c in vg_remove_direct (vg=0x66aa28) at metadata/metadata.c:571
#6  0x004b3d3c in vg_remove (vg=0x66aa28) at metadata/metadata.c:634
#7  0x00455815 in vgremove_single (cmd=0x606840, vg_name=0x648978 "raid1", 
vg=0x66aa28, handle=0x648980) at vgremove.c:79
#8  0x004488b1 in _process_vgnameid_list (process_single_vg=0x455660 
, handle=0x648980, arg_tags=0xbb10, 
arg_vgnames=0xbb18, vgnameids_to_process=0xbb28, read_flags=1048576, 
cmd=0x606840) at toollib.c:1964
#9  process_each_vg (cmd=, argc=, argv=, 
one_vgname=, use_vgnames=, read_flags=1048576, include_internal=, handle=0x648980, process_single_vg=) at toollib.c:2277
#10 0x00455949 in vgremove (cmd=, argc=, 
argv=) at vgremove.c:112
#11 0x004337ee in lvm_run_command (cmd=, argc=, 
argv=) at lvmcmdline.c:1723
#12 0x0043455d in lvm2_main (argc=2, argv=0xbdf4) at lvmcmdline.c:2249
#13 0x0041a537 in main (argc=2, argv=0xbdf4) at lvm.c:22

# Stretch/oldstable i386 qemu VM 2021-02-28


apt update
apt dist-upgrade

apt install gdb lvm2 lvm2-dbgsym
apt build-dep lvm2




mkdir /home/benutzer/source/lvm2/orig -p
cd/home/benutzer/source/lvm2/orig
apt source lvm2
cd






dd if=/dev/zero of=test0 bs=100M count=1
dd if=/dev/zero of=test1 bs=100M count=1

losetup loop0 test0
losetup loop1 test1

pvcreate /dev/loop0
pvcreate /dev/loop1

pvdisplay


mkdir /dev/testvg
mknod /dev/testvg/group c 128 0x
vgcreate raid1 /dev/loop0 /dev/loop1
vgremove raid1




root@debian:~# vgremove raid1
Speicherzugriffsfehler

root@debian:~# gdb -q --args vgremove raid1
Reading symbols from vgremove...(no debugging symbols found)...done.
(gdb) run
Starting program: /sbin/vgremove raid1
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
__strchr_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S:97
97  ../sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S: Datei oder 
Verzeichnis nicht gefunden.
(gdb) bt
#0  __strchr_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S:97
#1  0x0050b29f in config_make_nodes_v ()
#2  0x0050c5f7 in daemon_request_extend_v ()
#3  0x004fe622 in ?? ()
#4  0x00500b6c in lvmetad_vg_remove_pending ()
#5  0x004b366c in vg_remove_direct ()
#6  0x004b3d3c in vg_remove ()
#7  0x00455815 in ?? ()
#8  0x004488b1 in process_each_vg ()
#9  0x00455949 in vgremove ()
#10 0x004337ee in lvm_run_command ()
#11 0x0043455d in lvm2_main ()
#12 0x0041a537 in main ()







root@debian:~# gdb -q --args vgremove raid1
Reading symbols from vgremove...Reading symbols from 
/usr/lib/debug/.build-id/e2/859cb481b1f0a843f9d2667c790dba3f2fc901.debug...done.
done.
(gdb) run
Starting program: /sbin/vgremove raid1
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
__strchr_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S:97
97  ../sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S: Datei oder 
Verzeichnis nicht gefunden.
(gdb) set width 0
(gdb) set pagination off
(gdb) directory /home/benutzer/source/lvm2/orig/lvm2-2.02.168/libdaemon/client
Source directories searched: 
/home/benutzer/source/lvm2/orig/lvm2-2.02.168/libdaemon/client:$cdir:$cwd
(gdb) directory /home/benutzer/source/lvm2/orig/lvm2-2.02.168/lib
(gdb) bt
#0  __strchr_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S:97
#1  0x0050b29f in config_make_nodes_v (cft=0x64fae0, parent=0x0, 
pre_sib=0x64fd48, ap=0xb92c "\365\nP") at config-util.c:248
#2  0x0050c5f7 in daemon_request_extend_v (r=..., ap=0xb90c "\354\224U") at 
daemon-client.c:218
#3  0x004fe622 in _lvmetad_send (cmd=0x606840, id=) at 
cache/lvmetad.c:435
#4  0x00500b6c in lvmetad_vg_remove_pending (vg=0x66aa28) at 
cache/lvmetad.c:1304
#5  0x004b366c in vg_remove_direct (vg=0x66aa28) at metadata/metadata.c:571
#6  0x004b3d3c in 

Bug#982454: lvm2: vgremove segfaults in libc-2.24.so

2021-02-10 Thread Mc.Sim
Package: lvm2
Version: 2.02.168-2
Followup-For: Bug #982454

Hi Bastian,

Looks like I found quite relative bug #858002. But I'm not sure.
I can provide any diagnostics and logs.
But I don't know, which one is helpful.

Can you message me any highlevel steps to provide additional info?

Please, find attached syslog lines:

---
Feb 10 11:28:37 MEDIA kernel: [ 1672.765313] vgremove[5983]: segfault at 40 ip 
b7cb5b40 sp bfa75b98 error 4 in libc-2.24.so[b7c26000+1b1000]
Feb 10 11:28:37 MEDIA kernel: [ 1672.765327] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 11:31:02 MEDIA kernel: [ 1817.686642] vgremove[6995]: segfault at 40 ip 
b7c7fb40 sp bff9d2e8 error 4 in libc-2.24.so[b7bf+1b1000]
Feb 10 11:31:02 MEDIA kernel: [ 1817.686657] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 11:40:35 MEDIA kernel: [ 2391.570610] vgremove[8560]: segfault at 40 ip 
b7d3db40 sp bf9f2318 error 4 in libc-2.24.so[b7cae000+1b1000]
Feb 10 11:40:35 MEDIA kernel: [ 2391.570625] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 11:41:24 MEDIA kernel: [ 2440.183107] vgremove[8729]: segfault at 40 ip 
b7c89b40 sp bfedd368 error 4 in libc-2.24.so[b7bfa000+1b1000]
Feb 10 11:41:24 MEDIA kernel: [ 2440.183122] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 11:41:29 MEDIA kernel: [ 2445.556077] vgremove[8731]: segfault at 40 ip 
b7cdab40 sp bfc4eeb8 error 4 in libc-2.24.so[b7c4b000+1b1000]
Feb 10 11:41:29 MEDIA kernel: [ 2445.556092] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 11:55:12 MEDIA kernel: [ 3267.871877] vgremove[11417]: segfault at 40 ip 
b7d2cb40 sp bfe1eea8 error 4 in libc-2.24.so[b7c9d000+1b1000]
Feb 10 11:55:12 MEDIA kernel: [ 3267.871892] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 11:58:35 MEDIA kernel: [ 3471.176857] vgremove[11976]: segfault at 40 ip 
b7d45b40 sp bfe8f398 error 4 in libc-2.24.so[b7cb6000+1b1000]
Feb 10 11:58:35 MEDIA kernel: [ 3471.176872] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 12:18:26 MEDIA kernel: [ 4662.412000] vgremove[15944]: segfault at 40 ip 
b7d6cb40 sp bff703d8 error 4 in libc-2.24.so[b7cdd000+1b1000]
Feb 10 12:18:26 MEDIA kernel: [ 4662.412015] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 12:39:23 MEDIA kernel: [ 5918.888114] vgremove[19190]: segfault at 40 ip 
b7d67b40 sp bffb6358 error 4 in libc-2.24.so[b7cd8000+1b1000]
Feb 10 12:39:23 MEDIA kernel: [ 5918.888130] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 12:55:33 MEDIA kernel: [ 6889.375708] vgremove[21675]: segfault at 40 ip 
b7d2fb40 sp bf957e78 error 4 in libc-2.24.so[b7ca+1b1000]
Feb 10 12:55:33 MEDIA kernel: [ 6889.375723] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 12:55:54 MEDIA kernel: [ 6909.889174] vgremove[21678]: segfault at 40 ip 
b7cdab40 sp bfd2ba18 error 4 in libc-2.24.so[b7c4b000+1b1000]
Feb 10 12:55:54 MEDIA kernel: [ 6909.889190] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 d2 
66 0f d7
Feb 10 12:56:05 MEDIA kernel: [ 6920.642862] vgremove[21750]: segfault at 40 ip 
b7cf5b40 sp bff97738 error 4 in libc-2.24.so[b7c66000+1b1000]
Feb 10 12:56:05 MEDIA kernel: [ 6920.642877] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 66 
0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f

Bug#982454: lvm2: vgremove segfaults in libc-2.24.so

2021-02-10 Thread Bastian Blank
Control: sverity -1 important

On Wed, Feb 10, 2021 at 01:06:34PM +0300, Mc.Sim wrote:
> MEDIA ~ # grep kernel /var/log/syslog | grep "Code\|vgremove"
> Feb 10 11:28:37 MEDIA kernel: [ 1672.765313] vgremove[5983]: segfault at 40 
> ip b7cb5b40 sp bfa75b98 error 4 in libc-2.24.so[b7c26000+1b1000]

This is a userspace segmentation fault.

> Feb 10 11:28:37 MEDIA kernel: [ 1672.765327] Code: d2 74 0b 0f bc d2 39 d0 0f 
> 87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 6

This is a kernel BUG message.  Sorry, need the whole one to see
anything.

Bastian

-- 
I have never understood the female capacity to avoid a direct answer to
any question.
-- Spock, "This Side of Paradise", stardate 3417.3



Bug#982454: lvm2: vgremove segfaults in libc-2.24.so

2021-02-10 Thread Mc.Sim
Package: lvm2
Version: 2.02.168-2
Severity: grave
Justification: renders package unusable

I made a VG with 2 PVs.
I wanted to remove this VG. But I cannot do it at all.
Please, find attached verbose output:

MEDIA ~ # vgs -v
Logging initialised at Wed Feb 10 12:54:40 2021
Set umask from 0022 to 0077
  VGAttr   Ext   #PV #LV #SN VSize VFree VG UUID
VProfile
  raid1 wz--n- 4,00m   2   0   0 7,28t 7,28t 
p4CfcB-WqgJ-QYTe-w2h4-VCnI-Skcy-7metge
Wiping internal VG cache
MEDIA ~ # vgremove raid1
Logging initialised at Wed Feb 10 12:56:55 2021
Set umask from 0022 to 0077
Archiving volume group "raid1" metadata (seqno 1).
Ошибка сегментирования 
MEDIA ~ #
MEDIA ~ # grep kernel /var/log/syslog | grep "Code\|vgremove"
Feb 10 11:28:37 MEDIA kernel: [ 1672.765313] vgremove[5983]: segfault at 40 ip 
b7cb5b40 sp bfa75b98 error 4 in libc-2.24.so[b7c26000+1b1000]
Feb 10 11:28:37 MEDIA kernel: [ 1672.765327] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 6
6 0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 
d2 66 0f d7
Feb 10 11:31:02 MEDIA kernel: [ 1817.686642] vgremove[6995]: segfault at 40 ip 
b7c7fb40 sp bff9d2e8 error 4 in libc-2.24.so[b7bf+1b1000]
Feb 10 11:31:02 MEDIA kernel: [ 1817.686657] Code: d2 74 0b 0f bc d2 39 d0 0f 
87 ac 00 00 00 01 f8 01 c8 5f c3 8d b6 00 00 00 00 85 d2 0f 85 98 00 00 00 6
6 0f ef d2 83 c7 10 90 <66> 0f 6f 07 66 0f 74 d0 83 c7 10 66 0f 74 c1 66 0f d7 
d2 66 0f d7   



-- System Information:
Debian Release: 9.13
  APT prefers oldstable
  APT policy: (500, 'oldstable')
Architecture: i386 (i686)

Kernel: Linux 5.9.0-0.bpo.5-686 (SMP w/1 CPU core)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8), 
LANGUAGE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages lvm2 depends on:
ii  dmeventd  2:1.02.137-2
ii  dmsetup   2:1.02.137-2
ii  init-system-helpers   1.48
ii  libblkid1 2.29.2-1+deb9u1
ii  libc6 2.24-11+deb9u4
ii  libdevmapper-event1.02.1  2:1.02.137-2
ii  libdevmapper1.02.12:1.02.137-2
ii  liblvm2app2.2 2.02.168-2
ii  libreadline5  5.2+dfsg-3+b1
ii  libudev1  232-25+deb9u12
ii  lsb-base  9.20161125

lvm2 recommends no packages.

Versions of packages lvm2 suggests:
pn  thin-provisioning-tools  

-- Configuration Files:
/etc/lvm/lvm.conf changed:
config {
# Configuration option config/checks.
# If enabled, any LVM configuration mismatch is reported.
# This implies checking that the configuration key is understood by
# LVM and that the value of the key is the proper type. If disabled,
# any configuration mismatch is ignored and the default value is used
# without any warning (a message about the configuration key not being
# found is issued in verbose mode only).
checks = 1
# Configuration option config/abort_on_errors.
# Abort the LVM process if a configuration mismatch is found.
abort_on_errors = 0
# Configuration option config/profile_dir.
# Directory where LVM looks for configuration profiles.
profile_dir = "/etc/lvm/profile"
}
devices {
# Configuration option devices/dir.
# Directory in which to create volume group device nodes.
# Commands also accept this as a prefix on volume group names.
# This configuration option is advanced.
dir = "/dev"
# Configuration option devices/scan.
# Directories containing device nodes to use with LVM.
# This configuration option is advanced.
scan = [ "/dev" ]
# Configuration option devices/obtain_device_list_from_udev.
# Obtain the list of available devices from udev.
# This avoids opening or using any inapplicable non-block devices or
# subdirectories found in the udev directory. Any device node or
# symlink not managed by udev in the udev directory is ignored. This
# setting applies only to the udev-managed device directory; other
# directories will be scanned fully. LVM needs to be compiled with
# udev support for this setting to apply.
obtain_device_list_from_udev = 1
# Configuration option devices/external_device_info_source.
# Select an external device information source.
# Some information may already be available in the system and LVM can
# use this information to determine the exact type or use of devices it
# processes. Using an existing external device information source can
# speed up device processing as LVM does not need to run its own native
# routines to acquire this information. For example, this informa