Bug 863881

Summary: liblvm2app: property "origin" returns "" for thin snapshots
Product: Red Hat Enterprise Linux 6 Reporter: benscott
Component: lvm2Assignee: Zdenek Kabelac <zkabelac>
Status: CLOSED ERRATA QA Contact: Cluster QE <mspqa-list>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 6.5CC: agk, cmarthal, coughlan, dwysocha, heinzm, jbrassow, msnitzer, prajnoha, prockai, thornber, zkabelac
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: lvm2-2.02.98-1.el6 Doc Type: Bug Fix
Doc Text:
Unimplemented lvm2app support has caused to report incorrect values for thin snapshots "origin" field. Code has been updated to return correct answer for lvm_lv_get_property(lv, "origin") query.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-21 08:14: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:

Description benscott 2012-10-07 23:03:20 UTC
Description of problem:


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 1 benscott 2012-10-07 23:12:16 UTC
When using the lvm2app library get property function:

        value = lvm_lv_get_property(lvmLV, "origin");
        if (value.is_valid) {
            m_origin = value.value.string;

the origin of non-thin snapshots is returned as expected
but the origin of thin snapshots of thin volumes is "".


~#lvs
  LV         VG      Attr      LSize Pool     Origin    Data%  Move Log
  Pool_One   MyGroup twi-a-tz- 1.00g                     
  fat_snap1  MyGroup swi-a-s-- 2.00g          thin_vol2   
  thin_snap1 MyGroup Vwi-a-tz- 2.00g Pool_One thin_vol2   
  thin_vol2  MyGroup owi-a-tz- 2.00g Pool_One             

~# lvs --version
  LVM version:     2.02.98(2)-git (2012-08-24)
  Library version: 1.02.77-git (2012-08-24)
  Driver version:  4.22.0

Comment 3 Zdenek Kabelac 2012-10-12 11:12:11 UTC
Fixed upstream with commit:

https://www.redhat.com/archives/lvm-devel/2012-October/msg00099.html


Here is simple lvm2api test program which should pass now:

----
# Create pool & thin & snap LVs

lvcreate -L5M -T vg/pool
lvcreate -V1M -T vg/pool -n thin
lvcreate -s vg/thin -n snap

----
#include "lvm2app.h"

int main(int argc, char *argv[])
{
	lvm_t handle;
	vg_t vg;
	lv_t lv;
	struct lvm_property_value v;

	handle = lvm_init(NULL);
	vg = lvm_vg_open(handle, argv[1], "r", 0);
	lv = lvm_lv_from_name(vg, "snap");
	v = lvm_lv_get_property(lv, "origin");

	lvm_vg_close(vg);
	lvm_quit(handle);

	return (v.is_valid && (strcmp(v.value.string, "thin") == 0)) ? 0 : 1;
}

Comment 6 errata-xmlrpc 2013-02-21 08:14:24 UTC
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, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2013-0501.html