Description of problem: Original bug 1155196 pointed out to a problem where lvm2 cannot nicely handle the case where one or more snapshots of origin LV are or will become full because of suspend with fsfreeze. Existing problem can be quickly summarized as a problem - where lvm2 calls suspend on a snapshot which either already is or could become invalid. In the 1st. case call fsfreeze is already pointless in the later one, such and error is also not a reason to abort whole operation - since out-of-space/invalid snapshot is 'expected' behavior as it may happen anytime during the life of snapshot. Currently such fsfreeze error cause abort of whole origin+snapshot tree thus in case there is already out-of-space snapshot (or there will be, because of needed writes) user cannot easily create a new snapshot. Version-Release number of selected component (if applicable): 2.02.175 How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
Adding the left over failures from bug 1155196 here so we know why we still can't run this scenario w/ 7.5 code. SCENARIO - [additional_snap_attempt_w_existing_suspended_snap] Attempt to create an additional snapshot with existing suspended full snapshot Making origin volume lvcreate -L 300M snapper -n origin Placing an EXT filesystem on origin volume mke2fs 1.42.9 (28-Dec-2013) Making snapshot of origin volume lvcreate -s /dev/snapper/origin -c 16 -n suspended_snap -L 50M Mounting snapshot and origin volume Filling snapshot by writting to origin volume, while holding open the snapshot device mnt point qarsh root@host-086 dd if=/dev/zero of=/mnt/origin/fill_file bs=1M count=60 oflag=direct 60+0 records in 60+0 records out 62914560 bytes (63 MB) copied, 1.57702 s, 39.9 MB/s Verify snapshot was auto-unmounted due to corruption pvscan --cache /dev/snapper/suspended_snap: read failed after 0 of 1024 at 0: Input/output error /dev/snapper/suspended_snap: read failed after 0 of 1024 at 314507264: Input/output error /dev/snapper/suspended_snap: read failed after 0 of 1024 at 314564608: Input/output error /dev/snapper/suspended_snap: read failed after 0 of 1024 at 4096: Input/output error /dev/snapper/suspended_snap: read failed after 0 of 2048 at 0: Input/output error lvcreate -s /dev/snapper/origin -c 16 -n suspended_snap2 -L 50M Rounding up size to full physical extent 52.00 MiB device-mapper: suspend ioctl on (253:5) failed: Input/output error Unable to suspend snapper-suspended_snap (253:5) Failed to lock logical volume snapper/origin. Aborting. Manual intervention required. couldn't create snapshot suspended_snap2 additional snap attempt failed, possible regression of bug 1155196 3.10.0-862.el7.x86_64 lvm2-2.02.177-4.el7 BUILT: Fri Feb 16 13:22:31 CET 2018 lvm2-libs-2.02.177-4.el7 BUILT: Fri Feb 16 13:22:31 CET 2018 lvm2-cluster-2.02.177-4.el7 BUILT: Fri Feb 16 13:22:31 CET 2018 lvm2-lockd-2.02.177-4.el7 BUILT: Fri Feb 16 13:22:31 CET 2018 lvm2-python-boom-0.8.5-4.el7 BUILT: Fri Feb 16 13:37:10 CET 2018 cmirror-2.02.177-4.el7 BUILT: Fri Feb 16 13:22:31 CET 2018 device-mapper-1.02.146-4.el7 BUILT: Fri Feb 16 13:22:31 CET 2018 device-mapper-libs-1.02.146-4.el7 BUILT: Fri Feb 16 13:22:31 CET 2018 device-mapper-event-1.02.146-4.el7 BUILT: Fri Feb 16 13:22:31 CET 2018 device-mapper-event-libs-1.02.146-4.el7 BUILT: Fri Feb 16 13:22:31 CET 2018 device-mapper-persistent-data-0.7.3-3.el7 BUILT: Tue Nov 14 12:07:18 CET 2017