Description of problem:
lvm2app has regressed with regard to the "lv_attr" property: lvm_lv_get_property does no longer deliver a value for it.
This means that storaged treats all logical volumes as inactive and doesn't recognize thin pools and snapshots anymore, among other things.
Switching from lvm_lv_get_property to lvm_lv_get_attr is not enough. The latter returns incomplete attributes where 'active' and 'open' are set to "unknown".
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create a thin pool with Cockpit
Thin pool is created but shown as a inactive plain logical volume.
This pool is shown as a active thin pool
Looks like lvm2app is unmaintained and storaged should be ported away from it. Would it make sense to remove lvm2app from Fedora (and maybe the world)?
Currently, there are several changes in the reporting area of LVM2 code. One of those changes is that we're trying to reuse the same info and status ioctl result for one reporting line, removing a need to call several ioctl per one line of report output which can save some time and resources.
Unfortunately, one of the recent changes, where we tried to convert the lv_attr (and hence the lvm_lv_get_attr lvm2app counterpart), we introduced a regression that got unnoticed and it caused some of these "info" and "status" attributes in lv_attr (and the string returned by lvm_lv_get_attr) to have "unknown" (the "X") value.
Sorry for that! It should be fixed by this patch now:
I'll do a new update with this fix in for f21.
> It should be fixed by this patch now:
From reading the patch, I think this doesn't fully fix the regression, unfortunately.
lvm_lv_get_property can't find the "lv_attr" attribute at all anymore, because it's type was changed from LVS to LVSSTATUSINFO, as far as I can tell.
We can easily update storaged to use lvm_lv_get_attr, though.
What do you propose?
Correction: snapshots are recognized.
Just looking at the lvm_lv_get_property. You can also use lvm_lv_get_attr - internally, it's the same code which gets the value - in case lvm_lv_get_attr it's direct call to acquire the attr string. The lvm_lv_get_property is the general one for all fields which has some extra wrappers to handle this in general way, but underneath, for the lv_attr, it returns exactly the same as lvm_lv_get_attr.
> You can also use lvm_lv_get_attr - internally, it's the same code which gets the value
Yes, but we need to change storaged for that, and rush the new version into Fedora. That's fine, but if you are going to fix the lvm_lv_get_property regression as well, we don't need to even do that.
Yes, if you wait a bit, I think I can fix that. Hopefully today.
So this one should fix the issue with lvm_lv_get_property:
I've tested that on my machine, but I'll do a scratch for you to test too, just for sure.
F21 scratch build here:
> F21 scratch build here:
(In reply to Marius Vollmer from comment #10)
> > F21 scratch build here:
> Awesome! Testing...
Works as expected. Lvm_lv_get_property returns good values for "lv_attr" and storaged recognizes volumes as thin pools again.
OK, there's going to be a new upstream release today anyway, so I'll do rawhide and F21 pkgs then.
lvm2-2.02.116-3.fc21 has been submitted as an update for Fedora 21.
* should fix your issue,
* was pushed to the Fedora 21 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing lvm2-2.02.116-3.fc21'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).
lvm2-2.02.116-3.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report.
Thanks, excellent service, will shop again!