Bug 2040491
Summary: | lvmdevices segfault attempting to re-add devices file entry after an altered PART value | |||
---|---|---|---|---|
Product: | Red Hat Enterprise Linux 8 | Reporter: | Corey Marthaler <cmarthal> | |
Component: | lvm2 | Assignee: | David Teigland <teigland> | |
lvm2 sub component: | Devices, Filtering and Stacking | QA Contact: | cluster-qe <cluster-qe> | |
Status: | CLOSED ERRATA | Docs Contact: | ||
Severity: | medium | |||
Priority: | high | CC: | agk, cmackows, heinzm, jbrassow, mcsontos, msnitzer, prajnoha, teigland, zkabelac | |
Version: | 8.6 | Keywords: | Triaged | |
Target Milestone: | rc | |||
Target Release: | --- | |||
Hardware: | x86_64 | |||
OS: | Linux | |||
Whiteboard: | ||||
Fixed In Version: | lvm2-2.03.14-4.el8 | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | ||
Clone Of: | ||||
: | 2040937 (view as bug list) | Environment: | ||
Last Closed: | 2022-11-08 10:55:24 UTC | Type: | Bug | |
Regression: | --- | Mount Type: | --- | |
Documentation: | --- | CRM: | ||
Verified Versions: | Category: | --- | ||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
Cloudforms Team: | --- | Target Upstream Version: | ||
Embargoed: | ||||
Bug Depends On: | ||||
Bug Blocks: | 2040937 |
Description
Corey Marthaler
2022-01-13 20:15:26 UTC
Core was generated by `lvmdevices --adddev /dev/sdd1'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00005653c3e7b0fe in read_sys_block (cmd=cmd@entry=0x5653c61709f0, dev=0x0, suffix=suffix@entry=0x5653c3fa50b4 "device/wwid", sysbuf=sysbuf@entry=0x7ffec9aff780 "", sysbufsize=sysbufsize@entry=4096) at device/device_id.c:186 186 { (gdb) bt #0 0x00005653c3e7b0fe in read_sys_block (cmd=cmd@entry=0x5653c61709f0, dev=0x0, suffix=suffix@entry=0x5653c3fa50b4 "device/wwid", sysbuf=sysbuf@entry=0x7ffec9aff780 "", sysbufsize=sysbufsize@entry=4096) at device/device_id.c:186 #1 0x00005653c3e7b968 in device_id_system_read (cmd=cmd@entry=0x5653c61709f0, dev=0x0, idtype=<optimized out>) at device/device_id.c:310 #2 0x00005653c3e7d2fb in device_id_add (cmd=cmd@entry=0x5653c61709f0, dev=dev@entry=0x5653c6197638, pvid_arg=pvid_arg@entry=0x5653c61976d0 "", idtype_arg=<optimized out>, id_arg=id_arg@entry=0x0) at device/device_id.c:1200 #3 0x00005653c3e2a91f in lvmdevices (cmd=0x5653c61709f0, argc=<optimized out>, argv=<optimized out>) at lvmdevices.c:325 #4 0x00005653c3e28e69 in lvm_run_command (cmd=cmd@entry=0x5653c61709f0, argc=<optimized out>, argc@entry=3, argv=<optimized out>, argv@entry=0x7ffec9b00cc8) at lvmcmdline.c:3295 #5 0x00005653c3e29e64 in lvm2_main (argc=3, argv=0x7ffec9b00cc8) at lvmcmdline.c:3824 #6 0x00007fd9bb611ca3 in __libc_start_main (main=0x5653c3e03150 <main>, argc=3, argv=0x7ffec9b00cc8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffec9b00cb8) at ../csu/libc-start.c:314 #7 0x00005653c3e0321e in _start () at lvm.c:23 This problem was a part of a bunch of incorrect/unnecessary checks done when adding a device so that code has been reduced and reworked. Some previous warnings will appear a bit different. https://sourceware.org/git/?p=lvm2.git;a=commit;h=8f50c5e79b6ce619a53d51353dded2f84953af00 (manually edit system.devices entry, changing PART=1 to PART=9) # cat /etc/lvm/devices/system.devices # LVM uses devices listed in this file. # Created by LVM command lvmdevices pid 577118 at Tue Jan 25 15:22:53 2022 VERSION=1.1.104 IDTYPE=sys_wwid IDNAME=naa.690b11c0000438ad0000056e5091041c DEVNAME=/dev/sde PVID=iPtLn7Fd0ajt9D7UHBF5IQ3L8xH3R08b IDTYPE=sys_wwid IDNAME=naa.690b11c0000438ad0000056b50910415 DEVNAME=/dev/sdd1 PVID=. PART=9 # lvmdevices --check Devices file sys_wwid naa.690b11c0000438ad0000056b50910415 PVID none last seen on /dev/sdd1 not found. # lvmdevices --update Devices file sys_wwid naa.690b11c0000438ad0000056b50910415 PVID none last seen on /dev/sdd1 not found. No update for devices file is needed. # lvmdevices --adddev /dev/sdd1 Devices file sys_wwid naa.690b11c0000438ad0000056b50910415 PVID none last seen on /dev/sdd1 not found. WARNING: adding device /dev/sdd1 with idname naa.690b11c0000438ad0000056b50910415 which is already used for missing device. # cat /etc/lvm/devices/system.devices # LVM uses devices listed in this file. # Created by LVM command lvmdevices pid 577132 at Tue Jan 25 15:24:08 2022 VERSION=1.1.105 IDTYPE=sys_wwid IDNAME=naa.690b11c0000438ad0000056e5091041c DEVNAME=/dev/sde PVID=iPtLn7Fd0ajt9D7UHBF5IQ3L8xH3R08b IDTYPE=sys_wwid IDNAME=naa.690b11c0000438ad0000056b50910415 DEVNAME=/dev/sdd1 PVID=. PART=9 IDTYPE=sys_wwid IDNAME=naa.690b11c0000438ad0000056b50910415 DEVNAME=/dev/sdd1 PVID=. PART=1 Looks like this also affects pvcreate. I'll make sure to add that to the regression tests as well. kernel-4.18.0-367.el8 BUILT: Thu Feb 10 14:33:16 CST 2022 lvm2-2.03.14-3.el8 BUILT: Tue Jan 4 14:54:16 CST 2022 lvm2-libs-2.03.14-3.el8 BUILT: Tue Jan 4 14:54:16 CST 2022 [root@hayes-01 ~]# pvcreate /dev/sdg1 Segmentation fault (core dumped) [root@hayes-01 ~]# Core was generated by `pvcreate /dev/sdg1'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000556b2ae780fe in read_sys_block (cmd=cmd@entry=0x556b2b787a40, dev=0x0, suffix=suffix@entry=0x556b2afa20b4 "device/wwid", sysbuf=sysbuf@entry=0x7ffea72d5e40 "", sysbufsize=sysbufsize@entry=4096) at device/device_id.c:186 186 { (gdb) bt #0 0x0000556b2ae780fe in read_sys_block (cmd=cmd@entry=0x556b2b787a40, dev=0x0, suffix=suffix@entry=0x556b2afa20b4 "device/wwid", sysbuf=sysbuf@entry=0x7ffea72d5e40 "", sysbufsize=sysbufsize@entry=4096) at device/device_id.c:186 #1 0x0000556b2ae78968 in device_id_system_read (cmd=cmd@entry=0x556b2b787a40, dev=0x0, idtype=<optimized out>) at device/device_id.c:310 #2 0x0000556b2ae7a2fb in device_id_add (cmd=cmd@entry=0x556b2b787a40, dev=0x556b2b7aecb0, pvid_arg=pvid_arg@entry=0x7ffea72d7000 "vUzVdOdIMwqPkqvmW80Wdv1VEmmk2K1Q", idtype_arg=idtype_arg@entry=0x0, id_arg=id_arg@entry=0x0) at device/device_id.c:1200 #3 0x0000556b2ae4d8f8 in pvcreate_each_device (cmd=cmd@entry=0x556b2b787a40, handle=handle@entry=0x556b2b8c6c50, pp=pp@entry=0x7ffea72d7080) at toollib.c:5624 #4 0x0000556b2ae3401a in pvcreate (cmd=0x556b2b787a40, argc=1, argv=0x7ffea72d7510) at pvcreate.c:154 #5 0x0000556b2ae25e69 in lvm_run_command (cmd=cmd@entry=0x556b2b787a40, argc=<optimized out>, argc@entry=2, argv=<optimized out>, argv@entry=0x7ffea72d7508) at lvmcmdline.c:3295 #6 0x0000556b2ae26e64 in lvm2_main (argc=2, argv=0x7ffea72d7508) at lvmcmdline.c:3824 #7 0x00007f21c4e13ca3 in __libc_start_main (main=0x556b2ae00150 <main>, argc=2, argv=0x7ffea72d7508, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffea72d74f8) at ../csu/libc-start.c:314 #8 0x0000556b2ae0021e in _start () at lvm.c:23 Verified with the latest kernel/lvm2 as well. kernel-4.18.0-411.el8 BUILT: Wed Jul 20 18:42:42 CDT 2022 lvm2-2.03.14-5.el8 BUILT: Thu Jul 14 09:23:13 CDT 2022 lvm2-libs-2.03.14-5.el8 BUILT: Thu Jul 14 09:23:13 CDT 2022 SCENARIO - altered_partition_pvcreation: Test the attempt to create a PV after an existing entry has an altered partition value (segfault bugs 2040491|2040937) Copying out blanked system.devices file to begin with /tmp/system1561.devices -> hayes-01:/etc/lvm/devices/system.devices adding entry to the devices file for /dev/sde1 Altered entry: IDTYPE=sys_wwid IDNAME=naa.6d094660575ece002291bade2acdbd28 DEVNAME=/dev/sde1 PVID=. PART=9 Copying out altered system.devices file to hayes-01 /tmp/system946.devices -> hayes-01:/etc/lvm/devices/system.devices pvcreate --yes -ff /dev/sde1 WARNING: adding device /dev/sde1 with idname naa.6d094660575ece002291bade2acdbd28 which is already used for missing device. Physical volume "/dev/sde1" successfully created. Checking for segfault notification (bug 2040491|2040937) pvremove /dev/sde1 Labels on physical volume "/dev/sde1" successfully wiped. removing entry from the devices file for /dev/sde1 Altered entry: IDTYPE=sys_wwid IDNAME=naa.6d094660575ece002291bade2acdbd28 DEVNAME=/dev/sde1 PVID=. PART=1 Copying out altered system.devices file to hayes-01 /tmp/system1065.devices -> hayes-01:/etc/lvm/devices/system.devices removing entry from the devices file for /dev/sde1 SCENARIO - altered_partition_devicesfile_addition: Test the attempt to add a new devicesfile entry after an existing entry has an altered partition value (segfault bugs 2040491|2040937) Copying out blanked system.devices file to begin with /tmp/system1393.devices -> hayes-01:/etc/lvm/devices/system.devices adding entry to the devices file for /dev/sde1 Altered entry: IDTYPE=sys_wwid IDNAME=naa.6d094660575ece002291bade2acdbd28 DEVNAME=/dev/sde1 PVID=. PART=9 Copying out altered system.devices file to hayes-01 /tmp/system1591.devices -> hayes-01:/etc/lvm/devices/system.devices lvmdevices --adddev /dev/sde1 Devices file sys_wwid naa.6d094660575ece002291bade2acdbd28 PVID none last seen on /dev/sde1 not found. WARNING: adding device /dev/sde1 with idname naa.6d094660575ece002291bade2acdbd28 which is already used for missing device. Checking for segfault notification (bug 2040491|2040937) removing entry from the devices file for /dev/sde1 Altered entry: IDTYPE=sys_wwid IDNAME=naa.6d094660575ece002291bade2acdbd28 DEVNAME=/dev/sde1 PVID=. PART=1 Copying out altered system.devices file to hayes-01 /tmp/system1499.devices -> hayes-01:/etc/lvm/devices/system.devices removing entry from the devices file for /dev/sde1 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (lvm2 bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2022:7792 |