Bug 1899148

Summary: need a more graceful way to fail when attempting to cache RO devices
Product: [Community] LVM and device-mapper Reporter: Zdenek Kabelac <zkabelac>
Component: lvm2Assignee: Zdenek Kabelac <zkabelac>
lvm2 sub component: Cache Logical Volumes QA Contact: cluster-qe <cluster-qe>
Status: NEW --- Docs Contact:
Severity: medium    
Priority: unspecified CC: agk, cmarthal, heinzm, jbrassow, pasik, prajnoha, thornber, zkabelac
Version: unspecifiedFlags: pm-rhel: lvm-technical-solution?
pm-rhel: lvm-test-coverage?
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1110965 Environment:
Last Closed: Type: ---
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: 1110965    
Bug Blocks: 1113770, 1119326, 1186924    

Description Zdenek Kabelac 2020-11-18 15:51:21 UTC
Description of problem:

Create a RO origin (slow) volume
lvcreate -p r -L 4G -n corigin cache_sanity /dev/sdb1
  WARNING: "cache_sanity/corigin" not zeroed

Create a RO cache data and cache metadata (fast) volumes
lvcreate -p r -L 2G -n display_cache cache_sanity /dev/sde1
  WARNING: "cache_sanity/display_cache" not zeroed
lvcreate -p r -L 8M -n display_cache_meta cache_sanity /dev/sde1
  WARNING: "cache_sanity/display_cache_meta" not zeroed

[root@host-012 ~]# lvs -a -o +devices
  LV                 VG            Attr       LSize   Pool Origin Devices       
  corigin            cache_sanity  -ri-a-----   4.00g             /dev/sdb1(0)  
  display_cache      cache_sanity  -ri-a-----   2.00g             /dev/sde1(0)  
  display_cache_meta cache_sanity  -ri-a-----   8.00m             /dev/sde1(512)

[root@host-012 ~]# lvconvert --type cache-pool --cachemode writeback --poolmetadata cache_sanity/display_cache_meta cache_sanity/display_cache
  /dev/cache_sanity/display_cache_meta: write failed after 0 of 4096 at 0: Operation not permitted
  Logical volume "lvol0" created
  Converted cache_sanity/display_cache to cache pool.
[root@host-012 ~]# echo $?
0

[root@host-012 ~]# lvconvert --type cache --cachepool cache_sanity/display_cache cache_sanity/corigin
  device-mapper: reload ioctl on  failed: Block device required
  Device '/dev/sdc1' has been left open.
  Device '/dev/sda1' has been left open.
  Device '/dev/sdb1' has been left open.
  Device '/dev/sda1' has been left open.
  Device '/dev/sdc1' has been left open.
  Device '/dev/sdc1' has been left open.
  Device '/dev/sdb1' has been left open.
  Device '/dev/sde1' has been left open.
  Device '/dev/sdb1' has been left open.
  Device '/dev/sde1' has been left open.
  Device '/dev/sde1' has been left open.
  Device '/dev/sda1' has been left open.
  Device '/dev/sdb1' has been left open.
  Device '/dev/sdc1' has been left open.
  Device '/dev/sda1' has been left open.
  Device '/dev/sde1' has been left open.

[root@host-012 ~]# lvs -a -o +devices
  LV                    VG            Attr       LSize   Pool Origin Devices               
  corigin               cache_sanity  -ri-a-----   4.00g             /dev/sdb1(0)          
  display_cache         cache_sanity  Cwi-a-C---   2.00g             display_cache_cdata(0)
  [display_cache_cdata] cache_sanity  Cri-a-C---   2.00g             /dev/sde1(0)          
  [display_cache_cmeta] cache_sanity  eri-a-C---   8.00m             /dev/sde1(512)        
  [lvol0_pmspare]       cache_sanity  ewi-------   8.00m             /dev/sda1(0)          

Jun 18 18:24:50 host-012 kernel: device-mapper: cache metadata: sb_check failed: blocknr 18446744073709551615: wanted 0
Jun 18 18:24:50 host-012 kernel: device-mapper: block manager: superblock validator check failed for block 0
Jun 18 18:24:50 host-012 kernel: device-mapper: cache metadata: couldn't read lock superblock
Jun 18 18:24:50 host-012 kernel: device-mapper: table: 253:2: cache: Error creating metadata object



Version-Release number of selected component (if applicable):
3.10.0-123.el7.x86_64

lvm2-2.02.105-14.el7    BUILT: Wed Mar 26 08:29:41 CDT 2014
lvm2-libs-2.02.105-14.el7    BUILT: Wed Mar 26 08:29:41 CDT 2014
lvm2-cluster-2.02.105-14.el7    BUILT: Wed Mar 26 08:29:41 CDT 2014
device-mapper-1.02.84-14.el7    BUILT: Wed Mar 26 08:29:41 CDT 2014
device-mapper-libs-1.02.84-14.el7    BUILT: Wed Mar 26 08:29:41 CDT 2014
device-mapper-event-1.02.84-14.el7    BUILT: Wed Mar 26 08:29:41 CDT 2014
device-mapper-event-libs-1.02.84-14.el7    BUILT: Wed Mar 26 08:29:41 CDT 2014
device-mapper-persistent-data-0.3.2-1.el7    BUILT: Thu Apr  3 09:58:51 CDT 2014
cmirror-2.02.105-14.el7    BUILT: Wed Mar 26 08:29:41 CDT 2014