Bug 1379413

Summary: LVM: Every lvm command hangs if device under cache fails.
Product: Red Hat Enterprise Linux 7 Reporter: Jonathan Earl Brassow <jbrassow>
Component: lvm2Assignee: LVM and device-mapper development team <lvm-team>
lvm2 sub component: Cache Logical Volumes QA Contact: cluster-qe <cluster-qe>
Status: CLOSED DUPLICATE Docs Contact:
Severity: unspecified    
Priority: unspecified CC: agk, cmarthal, heinzm, jbrassow, msnitzer, prajnoha, zkabelac
Version: 7.2   
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-26 19:51:09 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:
Attachments:
Description Flags
Output from hung 'lvconvert --uncache vg/lv -vvvv'
none
Output from hung 'lvconvert --uncache vg/lv -vvvv'
none
Backtrace of the stuck process (stuck on suspend ioctl) none

Description Jonathan Earl Brassow 2016-09-26 16:21:16 UTC
Was trying to test the 'lvconvert --uncache' feature.  I created a cache LV and killed the device under the cache-pool.  After that, no LVM command would work.

[root@bp-01 ~]# lvs -a -o name,size,attr,devices vg
  LV                LSize   Attr       Devices
  [cachepool]         5.00g Cwi---C--- cachepool_cdata(0)
  [cachepool_cdata]   5.00g Cwi-ao---- /dev/sdb1(128004)
  [cachepool_cmeta]   8.00m ewi-ao---- /dev/sdb1(128002)
  lv                500.00g Cwi-a-C--- lv_corig(0)
  [lv_corig]        500.00g owi-aoC--- /dev/sdb1(0)
  [lvol0_pmspare]     8.00m ewi------- /dev/sdb1(128000)

I use the following command to disable the cache device (/dev/sdb1):
# echo offline > /sys/block/$dev/device/state

I will upload the 'vvvv' trace I got after attempting 'lvconvert --uncache' at this point.

Comment 1 Jonathan Earl Brassow 2016-09-26 16:23:07 UTC
Created attachment 1204883 [details]
Output from hung 'lvconvert --uncache vg/lv -vvvv'

Comment 2 Jonathan Earl Brassow 2016-09-26 16:52:41 UTC
I stupidly allowed the origin and cachepool to be created on the same PV in the earlier example.  Here it is again after putting them on separate devices:

[root@bp-01 ~]# !lvs
lvs -a -o name,size,attr,devices vg
  LV                LSize   Attr       Devices
  [cachepool]         5.00g Cwi---C--- cachepool_cdata(0)
  [cachepool_cdata]   5.00g Cwi-ao---- /dev/sdc1(4)
  [cachepool_cmeta]   8.00m ewi-ao---- /dev/sdc1(2)
  lv                500.00g Cwi-a-C--- lv_corig(0)
  [lv_corig]        500.00g owi-aoC--- /dev/sdb1(0)
  [lvol0_pmspare]     8.00m ewi------- /dev/sdc1(0)
[root@bp-01 ~]# off.sh /dev/sdc1
Turning off sdc

Comment 3 Jonathan Earl Brassow 2016-09-26 16:53:26 UTC
Created attachment 1204891 [details]
Output from hung 'lvconvert --uncache vg/lv -vvvv'

Comment 5 Jonathan Earl Brassow 2016-09-26 19:34:58 UTC
Created attachment 1204945 [details]
Backtrace of the stuck process (stuck on suspend ioctl)

Comment 6 Jonathan Earl Brassow 2016-09-26 19:51:09 UTC

*** This bug has been marked as a duplicate of bug 1377850 ***