Bug 2081808
Summary: | lvremove general protection fault with record_lvs_history turned on | |||
---|---|---|---|---|
Product: | Red Hat Enterprise Linux 9 | Reporter: | Corey Marthaler <cmarthal> | |
Component: | lvm2 | Assignee: | Peter Rajnoha <prajnoha> | |
lvm2 sub component: | Thin Provisioning | QA Contact: | cluster-qe <cluster-qe> | |
Status: | CLOSED ERRATA | Docs Contact: | ||
Severity: | medium | |||
Priority: | unspecified | CC: | agk, heinzm, jbrassow, mcsontos, msnitzer, prajnoha, thornber, zkabelac | |
Version: | 9.1 | Keywords: | Triaged | |
Target Milestone: | rc | |||
Target Release: | --- | |||
Hardware: | x86_64 | |||
OS: | Linux | |||
Whiteboard: | ||||
Fixed In Version: | lvm2-2.03.16-1.el9 | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | ||
Clone Of: | ||||
: | 2081809 (view as bug list) | Environment: | ||
Last Closed: | 2022-11-15 11:20:43 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: | 2081809 |
Description
Corey Marthaler
2022-05-04 16:57:35 UTC
Should be fixed with: https://sourceware.org/git/?p=lvm2.git;a=commit;h=7ec0726ce331a4dc1ab5dc5e1b9ae503e5d758da Fix verified in the latest rpms. kernel-5.14.0-127.el9 BUILT: Sat Jul 9 06:54:36 AM CDT 2022 lvm2-2.03.16-2.el9 BUILT: Thu Jul 14 11:45:18 AM CDT 2022 lvm2-libs-2.03.16-2.el9 BUILT: Thu Jul 14 11:45:18 AM CDT 2022 [root@hayes-03 ~]# grep record_lvs_history /etc/lvm/lvm.conf # Configuration option metadata/record_lvs_history. record_lvs_history = 1 SCENARIO - [snap_of_thin_snaps] Create a snapshot and then attempt multiple levels of snaps of snaps Making pool volume lvcreate --yes --thinpool POOL -L 1G --profile thin-performance --zero n --poolmetadatasize 4M snapper_thinp Sanity checking pool device (POOL) metadata thin_check /dev/mapper/snapper_thinp-meta_swap.635 examining superblock examining devices tree examining mapping tree checking space map counts Making origin volume lvcreate --yes --virtualsize 1G -T snapper_thinp/POOL -n origin lvcreate --yes -V 1G -T snapper_thinp/POOL -n other1 WARNING: Sum of all thin volume sizes (2.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). lvcreate --yes -V 1G -T snapper_thinp/POOL -n other2 WARNING: Sum of all thin volume sizes (3.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). lvcreate --yes -V 1G -T snapper_thinp/POOL -n other3 WARNING: Sum of all thin volume sizes (4.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). lvcreate --yes --virtualsize 1G -T snapper_thinp/POOL -n other4 WARNING: Sum of all thin volume sizes (5.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). lvcreate --yes --virtualsize 1G -T snapper_thinp/POOL -n other5 WARNING: Sum of all thin volume sizes (6.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Placing an xfs filesystem on origin volume Mounting origin volume Writing files to /mnt/origin Checking files on /mnt/origin syncing before snap creation... Making snapshot of origin volume lvcreate --yes -y -k n -s /dev/snapper_thinp/origin -n stack1 Create a chain of snapshots of snapshots, mount and verify origin I/O exists lvcreate --yes -k n -s /dev/snapper_thinp/stack1 -n stack2 WARNING: Sum of all thin volume sizes (8.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack2 lvcreate --yes -k n -s /dev/snapper_thinp/stack2 -n stack3 WARNING: Sum of all thin volume sizes (9.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack3 lvcreate --yes -k n -s /dev/snapper_thinp/stack3 -n stack4 WARNING: Sum of all thin volume sizes (10.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack4 lvcreate --yes -k n -s /dev/snapper_thinp/stack4 -n stack5 WARNING: Sum of all thin volume sizes (11.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack5 lvcreate --yes -k n -s /dev/snapper_thinp/stack5 -n stack6 WARNING: Sum of all thin volume sizes (12.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack6 lvcreate --yes -k n -s /dev/snapper_thinp/stack6 -n stack7 WARNING: Sum of all thin volume sizes (13.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack7 lvcreate --yes -k n -s /dev/snapper_thinp/stack7 -n stack8 WARNING: Sum of all thin volume sizes (14.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack8 lvcreate --yes -k n -s /dev/snapper_thinp/stack8 -n stack9 WARNING: Sum of all thin volume sizes (15.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack9 lvcreate --yes -k n -s /dev/snapper_thinp/stack9 -n stack10 WARNING: Sum of all thin volume sizes (16.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack10 lvcreate --yes -k n -s /dev/snapper_thinp/stack10 -n stack11 WARNING: Sum of all thin volume sizes (17.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack11 lvcreate --yes -k n -s /dev/snapper_thinp/stack11 -n stack12 WARNING: Sum of all thin volume sizes (18.00 GiB) exceeds the size of thin pool snapper_thinp/POOL (1.00 GiB). Checking files on /mnt/stack12 Now break the chain connection to the origin by removing the 1st and 2nd snap devices, and verify origin I/O continues to exist in the remaining snapshots lvremove --yes --select 'lv_name=stack1 || origin=stack1' Break up the remaing chain by verifying I/O and removing every other stacked snap Checking files on /mnt/stack3 Removing stack4 and verifying I/0 on stack5 Removing snap volume snapper_thinp/stack4 lvremove -f /dev/snapper_thinp/stack4 Checking files on /mnt/stack5 Removing stack6 and verifying I/0 on stack7 Removing snap volume snapper_thinp/stack6 lvremove -f /dev/snapper_thinp/stack6 Checking files on /mnt/stack7 Removing stack8 and verifying I/0 on stack9 Removing snap volume snapper_thinp/stack8 lvremove -f /dev/snapper_thinp/stack8 Checking files on /mnt/stack9 Removing stack10 and verifying I/0 on stack11 Removing snap volume snapper_thinp/stack10 lvremove -f /dev/snapper_thinp/stack10 Checking files on /mnt/stack11 Removing stack12 and verifying I/0 on stack13 Removing snap volume snapper_thinp/stack12 lvremove -f /dev/snapper_thinp/stack12 Clean up the remaining snaps in the broken chain Removing snap volume snapper_thinp/stack3 lvremove -f /dev/snapper_thinp/stack3 Removing snap volume snapper_thinp/stack5 lvremove -f /dev/snapper_thinp/stack5 Removing snap volume snapper_thinp/stack7 lvremove -f /dev/snapper_thinp/stack7 Removing snap volume snapper_thinp/stack9 lvremove -f /dev/snapper_thinp/stack9 Removing snap volume snapper_thinp/stack11 lvremove -f /dev/snapper_thinp/stack11 Removing thin origin and other virtual thin volumes Removing pool snapper_thinp/POOL Fix verified in the latest kernel/lvm2 rpms. kernel-5.14.0-131.el9 BUILT: Mon Jul 18 02:51:09 PM CDT 2022 lvm2-2.03.16-2.el9 BUILT: Thu Jul 14 11:45:18 AM CDT 2022 lvm2-libs-2.03.16-2.el9 BUILT: Thu Jul 14 11:45:18 AM CDT 2022 [root@hayes-03 tmp]# grep record_lvs_history /etc/lvm/lvm.conf # Configuration option metadata/record_lvs_history. record_lvs_history = 1 SCENARIO - [snap_of_thin_snaps] Create a snapshot and then attempt multiple levels of snaps of snaps Making pool volume lvcreate --yes --thinpool POOL -L 1G --zero n --poolmetadatasize 4M snapper_thinp Sanity checking pool device (POOL) metadata thin_check /dev/mapper/snapper_thinp-meta_swap.401 examining superblock examining devices tree examining mapping tree checking space map counts Making origin volume lvcreate --yes --virtualsize 1G -T snapper_thinp/POOL -n origin lvcreate --yes -V 1G -T snapper_thinp/POOL -n other1 lvcreate --yes -V 1G -T snapper_thinp/POOL -n other2 lvcreate --yes -V 1G -T snapper_thinp/POOL -n other3 lvcreate --yes --virtualsize 1G -T snapper_thinp/POOL -n other4 lvcreate --yes -V 1G -T snapper_thinp/POOL -n other5 Placing an xfs filesystem on origin volume Mounting origin volume Writing files to /mnt/origin Checking files on /mnt/origin syncing before snap creation... Making snapshot of origin volume lvcreate --yes -y -k n -s /dev/snapper_thinp/origin -n stack1 Create a chain of snapshots of snapshots, mount and verify origin I/O exists lvcreate --yes -k n -s /dev/snapper_thinp/stack1 -n stack2 Checking files on /mnt/stack2 lvcreate --yes -k n -s /dev/snapper_thinp/stack2 -n stack3 Checking files on /mnt/stack3 lvcreate --yes -k n -s /dev/snapper_thinp/stack3 -n stack4 Checking files on /mnt/stack4 lvcreate --yes -k n -s /dev/snapper_thinp/stack4 -n stack5 Checking files on /mnt/stack5 lvcreate --yes -k n -s /dev/snapper_thinp/stack5 -n stack6 Checking files on /mnt/stack6 lvcreate --yes -k n -s /dev/snapper_thinp/stack6 -n stack7 Checking files on /mnt/stack7 lvcreate --yes -k n -s /dev/snapper_thinp/stack7 -n stack8 Checking files on /mnt/stack8 lvcreate --yes -k n -s /dev/snapper_thinp/stack8 -n stack9 Checking files on /mnt/stack9 lvcreate --yes -k n -s /dev/snapper_thinp/stack9 -n stack10 Checking files on /mnt/stack10 lvcreate --yes -k n -s /dev/snapper_thinp/stack10 -n stack11 Checking files on /mnt/stack11 lvcreate --yes -k n -s /dev/snapper_thinp/stack11 -n stack12 Checking files on /mnt/stack12 Now break the chain connection to the origin by removing the 1st and 2nd snap devices, and verify origin I/O continues to exist in the remaining snapshots lvremove --yes --select 'lv_name=stack1 || origin=stack1' Break up the remaing chain by verifying I/O and removing every other stacked snap Checking files on /mnt/stack3 Removing stack4 and verifying I/0 on stack5 Removing snap volume snapper_thinp/stack4 lvremove -f /dev/snapper_thinp/stack4 Checking files on /mnt/stack5 Removing stack6 and verifying I/0 on stack7 Removing snap volume snapper_thinp/stack6 lvremove -f /dev/snapper_thinp/stack6 Checking files on /mnt/stack7 Removing stack8 and verifying I/0 on stack9 Removing snap volume snapper_thinp/stack8 lvremove -f /dev/snapper_thinp/stack8 Checking files on /mnt/stack9 Removing stack10 and verifying I/0 on stack11 Removing snap volume snapper_thinp/stack10 lvremove -f /dev/snapper_thinp/stack10 Checking files on /mnt/stack11 Removing stack12 and verifying I/0 on stack13 Removing snap volume snapper_thinp/stack12 lvremove -f /dev/snapper_thinp/stack12 Clean up the remaining snaps in the broken chain Removing snap volume snapper_thinp/stack3 lvremove -f /dev/snapper_thinp/stack3 Removing snap volume snapper_thinp/stack5 lvremove -f /dev/snapper_thinp/stack5 Removing snap volume snapper_thinp/stack7 lvremove -f /dev/snapper_thinp/stack7 Removing snap volume snapper_thinp/stack9 lvremove -f /dev/snapper_thinp/stack9 Removing snap volume snapper_thinp/stack11 lvremove -f /dev/snapper_thinp/stack11 Removing thin origin and other virtual thin volumes Removing pool snapper_thinp/POOL 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:8358 |