Bug 2191683

Summary: raid+integrity reduction attempt fails with "Invalid stripe size 0" error
Product: Red Hat Enterprise Linux 9 Reporter: Corey Marthaler <cmarthal>
Component: lvm2Assignee: LVM Team <lvm-team>
lvm2 sub component: Mirroring and RAID QA Contact: cluster-qe <cluster-qe>
Status: VERIFIED --- Docs Contact:
Severity: medium    
Priority: unspecified CC: agk, heinzm, jbrassow, mcsontos, msnitzer, prajnoha, teigland, zkabelac
Version: 9.3Keywords: Triaged
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: lvm2-2.03.21-2.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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:

Description Corey Marthaler 2023-04-28 19:25:22 UTC
Description of problem:

[root@virt-506 ~]# lvs -a -o +devices
  LV                         VG            Attr       LSize   Pool Origin                     Data%  Meta%  Move Log Cpy%Sync Convert Devices                                                          
  resize_lv                  resize_matrix rwi---r---  30.00g                                                                         resize_lv_rimage_0(0),resize_lv_rimage_1(0),resize_lv_rimage_2(0)
  [resize_lv_rimage_0]       resize_matrix gwi---r---  30.00g      [resize_lv_rimage_0_iorig]                                         resize_lv_rimage_0_iorig(0)                                      
  [resize_lv_rimage_0_imeta] resize_matrix ewi------- 312.00m                                                                         /dev/sda(7681)                                                   
  [resize_lv_rimage_0_iorig] resize_matrix -wi-------  30.00g                                                                         /dev/sda(1)                                                      
  [resize_lv_rimage_1]       resize_matrix gwi---r---  30.00g      [resize_lv_rimage_1_iorig]                                         resize_lv_rimage_1_iorig(0)                                      
  [resize_lv_rimage_1_imeta] resize_matrix ewi------- 312.00m                                                                         /dev/sdb(7681)                                                   
  [resize_lv_rimage_1_iorig] resize_matrix -wi-------  30.00g                                                                         /dev/sdb(1)                                                      
  [resize_lv_rimage_2]       resize_matrix gwi---r---  30.00g      [resize_lv_rimage_2_iorig]                                         resize_lv_rimage_2_iorig(0)                                      
  [resize_lv_rimage_2_imeta] resize_matrix ewi------- 312.00m                                                                         /dev/sdc(7681)                                                   
  [resize_lv_rimage_2_iorig] resize_matrix -wi-------  30.00g                                                                         /dev/sdc(1)                                                      
  [resize_lv_rmeta_0]        resize_matrix ewi---r---   4.00m                                                                         /dev/sda(0)                                                      
  [resize_lv_rmeta_1]        resize_matrix ewi---r---   4.00m                                                                         /dev/sdb(0)                                                      
  [resize_lv_rmeta_2]        resize_matrix ewi---r---   4.00m                                                                         /dev/sdc(0)                                                      

# Happens whether or not volume is active
[root@virt-506 ~]# lvreduce --yes -L -627M resize_matrix/resize_lv
  Rounding size to boundary between physical extents: 624.00 MiB.
  Invalid stripe size 0   .
[root@virt-506 ~]# lvchange -ay resize_matrix
[root@virt-506 ~]# lvreduce --yes -L -627M resize_matrix/resize_lv
  Rounding size to boundary between physical extents: 624.00 MiB.
  Invalid stripe size 0   .


Version-Release number of selected component (if applicable):
kernel-5.14.0-283.el9    BUILT: Fri Feb 24 12:35:52 AM CET 2023
lvm2-2.03.20-2.el9    BUILT: Thu Apr  6 01:40:29 PM CEST 2023
lvm2-libs-2.03.20-2.el9    BUILT: Thu Apr  6 01:40:29 PM CEST 2023

Comment 1 Corey Marthaler 2023-04-28 19:26:57 UTC
21:26:02.346231 lvreduce[1344750] device/dev-io.c:96  /dev/sda: using cached size 125829120 sectors
21:26:02.346239 lvreduce[1344750] device/dev-io.c:96  /dev/sdb: using cached size 125829120 sectors
21:26:02.346244 lvreduce[1344750] device/dev-io.c:96  /dev/sdc: using cached size 125829120 sectors
21:26:02.346250 lvreduce[1344750] device/dev-io.c:96  /dev/sdd: using cached size 125829120 sectors
21:26:02.346255 lvreduce[1344750] device/dev-io.c:96  /dev/sde: using cached size 125829120 sectors
21:26:02.346260 lvreduce[1344750] device/dev-io.c:96  /dev/sdf1: using cached size 31457256 sectors
21:26:02.346270 lvreduce[1344750] metadata/vg.c:65  Allocated VG resize_matrix at 0x56214af7c0c0.
21:26:02.346291 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv.
21:26:02.346299 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rimage_0.
21:26:02.346306 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rmeta_0.
21:26:02.346313 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rimage_1.
21:26:02.346319 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rmeta_1.
21:26:02.346326 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rimage_2.
21:26:02.346332 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rmeta_2.
21:26:02.346339 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rimage_0_imeta.
21:26:02.346365 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rimage_1_imeta.
21:26:02.346372 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rimage_2_imeta.
21:26:02.346379 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rimage_0_iorig.
21:26:02.346385 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rimage_1_iorig.
21:26:02.346712 lvreduce[1344750] format_text/import_vsn1.c:631  Importing logical volume resize_matrix/resize_lv_rimage_2_iorig.
21:26:02.346726 lvreduce[1344750] metadata/lv_manip.c:1329  Stack resize_matrix/resize_lv:0[0] on LV resize_matrix/resize_lv_rmeta_0:0.
21:26:02.346733 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv:0 as an user of resize_matrix/resize_lv_rmeta_0.
21:26:02.346739 lvreduce[1344750] metadata/lv_manip.c:1329  Stack resize_matrix/resize_lv:0[0] on LV resize_matrix/resize_lv_rimage_0:0.
21:26:02.346744 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv:0 as an user of resize_matrix/resize_lv_rimage_0.
21:26:02.346750 lvreduce[1344750] metadata/lv_manip.c:1329  Stack resize_matrix/resize_lv:0[1] on LV resize_matrix/resize_lv_rmeta_1:0.
21:26:02.346756 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv:0 as an user of resize_matrix/resize_lv_rmeta_1.
21:26:02.346762 lvreduce[1344750] metadata/lv_manip.c:1329  Stack resize_matrix/resize_lv:0[1] on LV resize_matrix/resize_lv_rimage_1:0.
21:26:02.346768 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv:0 as an user of resize_matrix/resize_lv_rimage_1.
21:26:02.346773 lvreduce[1344750] metadata/lv_manip.c:1329  Stack resize_matrix/resize_lv:0[2] on LV resize_matrix/resize_lv_rmeta_2:0.
21:26:02.346779 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv:0 as an user of resize_matrix/resize_lv_rmeta_2.
21:26:02.346785 lvreduce[1344750] metadata/lv_manip.c:1329  Stack resize_matrix/resize_lv:0[2] on LV resize_matrix/resize_lv_rimage_2:0.
21:26:02.346791 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv:0 as an user of resize_matrix/resize_lv_rimage_2.
21:26:02.346800 lvreduce[1344750] metadata/lv_manip.c:1329  Stack resize_matrix/resize_lv_rimage_0:0[0] on LV resize_matrix/resize_lv_rimage_0_iorig:0.
21:26:02.346819 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv_rimage_0:0 as an user of resize_matrix/resize_lv_rimage_0_iorig.
21:26:02.346827 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv_rimage_0:0 as an user of resize_matrix/resize_lv_rimage_0_imeta.
21:26:02.346837 lvreduce[1344750] metadata/lv_manip.c:1329  Stack resize_matrix/resize_lv_rimage_1:0[0] on LV resize_matrix/resize_lv_rimage_1_iorig:0.
21:26:02.346843 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv_rimage_1:0 as an user of resize_matrix/resize_lv_rimage_1_iorig.
21:26:02.346851 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv_rimage_1:0 as an user of resize_matrix/resize_lv_rimage_1_imeta.
21:26:02.346860 lvreduce[1344750] metadata/lv_manip.c:1329  Stack resize_matrix/resize_lv_rimage_2:0[0] on LV resize_matrix/resize_lv_rimage_2_iorig:0.
21:26:02.346866 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv_rimage_2:0 as an user of resize_matrix/resize_lv_rimage_2_iorig.
21:26:02.346873 lvreduce[1344750] metadata/lv_manip.c:870  Adding resize_matrix/resize_lv_rimage_2:0 as an user of resize_matrix/resize_lv_rimage_2_imeta.
21:26:02.346899 lvreduce[1344750] toollib.c:3374  Adding resize_matrix/resize_lv to the list of LVs to be processed.
21:26:02.346909 lvreduce[1344750] toollib.c:3449  Processing LV resize_lv in VG resize_matrix.
21:26:02.346971 lvreduce[1344750] activate/dev_manager.c:859  Getting device info for resize_matrix-resize_lv [LVM-zjEMGK1b2MlsyOMwj7FJdQKlSnx6wrUztweeize1vlmCXlfzacFONKugrJFSK1kO].
21:26:02.347108 lvreduce[1344750] device_mapper/ioctl/libdm-iface.c:2097  dm version   [ opencount flush ]   [2048] (*1)
21:26:02.347298 lvreduce[1344750] device_mapper/ioctl/libdm-iface.c:2097  dm info  LVM-zjEMGK1b2MlsyOMwj7FJdQKlSnx6wrUztweeize1vlmCXlfzacFONKugrJFSK1kO [ noopencount flush ]   [2048] (*1)
21:26:02.347328 lvreduce[1344750] metadata/lv_manip.c:5196  Rounding size to boundary between physical extents: 624.00 MiB.
21:26:02.347350 lvreduce[1344750] metadata/lv_manip.c:5631  Invalid stripe size 0   .
21:26:02.347356 lvreduce[1344750] metadata/lv_manip.c:5914  <backtrace>
21:26:02.347361 lvreduce[1344750] metadata/lv_manip.c:6770  <backtrace>
21:26:02.347367 lvreduce[1344750] toollib.c:3455  <backtrace>
21:26:02.347374 lvreduce[1344750] toollib.c:3930  <backtrace>
21:26:02.347379 lvreduce[1344750] mm/memlock.c:608  Unlock: Memlock counters: prioritized:0 locked:0 critical:0 daemon:0 suspended:0
21:26:02.347386 lvreduce[1344750] activate/fs.c:493  Syncing device names
21:26:02.347403 lvreduce[1344750] misc/lvm-flock.c:84  Unlocking /run/lock/lvm/V_resize_matrix
21:26:02.347415 lvreduce[1344750] misc/lvm-flock.c:47  _undo_flock /run/lock/lvm/V_resize_matrix
21:26:02.347525 lvreduce[1344750] metadata/vg.c:80  Freeing VG resize_matrix at 0x56214af7c0c0.
21:26:02.347537 lvreduce[1344750] metadata/vg.c:80  Freeing VG resize_matrix at 0x56214af72090.
21:26:02.347589 lvreduce[1344750] device_mapper/libdm-config.c:1085  global/notify_dbus not found in config: defaulting to 1
21:26:02.347601 lvreduce[1344750] cache/lvmcache.c:2603  Destroy lvmcache content
21:26:02.368219 lvreduce[1344750] lvmcmdline.c:3352  Completed: lvreduce --yes -L -627M -vvvv resize_matrix/resize_lv
21:26:02.368862 lvreduce[1344750] cache/lvmcache.c:2603  Destroy lvmcache content
21:26:02.368894 lvreduce[1344750] metadata/vg.c:80  Freeing VG #orphans_lvm2 at 0x56214ae4b560.
21:26:02.368998 lvreduce[1344750] activate/fs.c:493  Syncing device names

Comment 2 David Teigland 2023-05-03 19:31:48 UTC
fixed in main:
https://sourceware.org/git/?p=lvm2.git;a=commit;h=368381fd4022dc99ffe551b30ed75c3ddbc5c5c8

$ lvs -a test1 | grep rrii
  rrii                  test1 rwi-a-r---  72.00m                                                         100.00          
  [rrii_rimage_0]       test1 gwi-aor---  72.00m      [rrii_rimage_0_iorig]                              100.00          
  [rrii_rimage_0_imeta] test1 ewi-ao----   8.00m                                                                         
  [rrii_rimage_0_iorig] test1 -wi-ao----  72.00m                                                                         
  [rrii_rimage_1]       test1 gwi-aor---  72.00m      [rrii_rimage_1_iorig]                              100.00          
  [rrii_rimage_1_imeta] test1 ewi-ao----   8.00m                                                                         
  [rrii_rimage_1_iorig] test1 -wi-ao----  72.00m                                                                         
  [rrii_rmeta_0]        test1 ewi-aor---   4.00m                                                                         
  [rrii_rmeta_1]        test1 ewi-aor---   4.00m                                                                         
$ lvreduce -L-8M test1/rrii
  Cannot reduce LV with integrity.

Comment 5 Corey Marthaler 2023-05-30 16:10:57 UTC
Marking Verified:Tested in the latest build.

kernel-5.14.0-306.el9    BUILT: Sat Apr 29 05:45:15 PM CEST 2023
lvm2-2.03.21-2.el9    BUILT: Thu May 25 12:03:04 AM CEST 2023
lvm2-libs-2.03.21-2.el9    BUILT: Thu May 25 12:03:04 AM CEST 2023



[root@grant-01 ~]# lvs -a -o +devices
  LV                         VG            Attr       LSize    Pool Origin                     Data%  Meta%  Move Log Cpy%Sync Convert Devices                                                          
  resize_lv                  resize_matrix rwi-a-r---   30.00g                                                        100.00           resize_lv_rimage_0(0),resize_lv_rimage_1(0),resize_lv_rimage_2(0)
  [resize_lv_rimage_0]       resize_matrix gwi-aor---   30.00g      [resize_lv_rimage_0_iorig]                        100.00           resize_lv_rimage_0_iorig(0)                                      
  [resize_lv_rimage_0_imeta] resize_matrix ewi-ao----  312.00m                                                                         /dev/nvme1n1p1(7681)                                             
  [resize_lv_rimage_0_iorig] resize_matrix -wi-ao----   30.00g                                                                         /dev/nvme1n1p1(1)                                                
  [resize_lv_rimage_1]       resize_matrix gwi-aor---   30.00g      [resize_lv_rimage_1_iorig]                        100.00           resize_lv_rimage_1_iorig(0)                                      
  [resize_lv_rimage_1_imeta] resize_matrix ewi-ao----  312.00m                                                                         /dev/nvme0n1p1(7681)                                             
  [resize_lv_rimage_1_iorig] resize_matrix -wi-ao----   30.00g                                                                         /dev/nvme0n1p1(1)                                                
  [resize_lv_rimage_2]       resize_matrix gwi-aor---   30.00g      [resize_lv_rimage_2_iorig]                        100.00           resize_lv_rimage_2_iorig(0)                                      
  [resize_lv_rimage_2_imeta] resize_matrix ewi-ao----  312.00m                                                                         /dev/sdd1(7681)                                                  
  [resize_lv_rimage_2_iorig] resize_matrix -wi-ao----   30.00g                                                                         /dev/sdd1(1)                                                     
  [resize_lv_rmeta_0]        resize_matrix ewi-aor---    4.00m                                                                         /dev/nvme1n1p1(0)                                                
  [resize_lv_rmeta_1]        resize_matrix ewi-aor---    4.00m                                                                         /dev/nvme0n1p1(0)                                                
  [resize_lv_rmeta_2]        resize_matrix ewi-aor---    4.00m                                                                         /dev/sdd1(0)                                                     

[root@grant-01 ~]# lvreduce --yes --fs resize -L -459M resize_matrix/resize_lv
  Rounding size to boundary between physical extents: 456.00 MiB.
  Cannot reduce LV with integrity.