Bug 2081809
| Summary: | lvremove general protection fault with record_lvs_history turned on | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | 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, cluster-qe, heinzm, jbrassow, lvm-team, mcsontos, msnitzer, prajnoha, thornber, zkabelac |
| Version: | 8.6 | Keywords: | Triaged |
| Target Milestone: | rc | Flags: | pm-rhel:
mirror+
|
| 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: | 2081808 | 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: | 2081808 | ||
| Bug Blocks: | |||
|
Description
Corey Marthaler
2022-05-04 16:59:05 UTC
Should be fixed with: https://sourceware.org/git/?p=lvm2.git;a=commit;h=7ec0726ce331a4dc1ab5dc5e1b9ae503e5d758da Fix verified in the latest rpms.
lvm2-2.03.14-4.el8 BUILT: Wed Jun 15 17:14:34 CDT 2022
lvm2-libs-2.03.14-4.el8 BUILT: Wed Jun 15 17:14:34 CDT 2022
[root@hayes-01 ~]# 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 y --poolmetadatasize 4M snapper_thinp
Sanity checking pool device (POOL) metadata
thin_check /dev/mapper/snapper_thinp-meta_swap.895
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 --virtualsize 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 --virtualsize 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 --virtualsize 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 -V 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 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
[root@hayes-02 ~]# 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.314
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 --virtualsize 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 --virtualsize 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 -V 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 -V 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
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 |