Bug#982454: lvm2: vgremove segfaults in libc-2.24.so
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
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
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
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