Bug 1084157

Summary: Incompatible versions of lvm2 cluster can be installed at the same time
Product: Red Hat Enterprise Linux 6 Reporter: Jesse Triplett <jtriplet>
Component: lvm2Assignee: Peter Rajnoha <prajnoha>
lvm2 sub component: Clustering / clvmd (RHEL6) QA Contact: Cluster QE <mspqa-list>
Status: CLOSED ERRATA Docs Contact:
Severity: low    
Priority: unspecified CC: agk, heinzm, jbrassow, msnitzer, nperic, prajnoha, prockai, zkabelac
Version: 6.6   
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Fixed In Version: lvm2-2.02.107-1.el6 Doc Type: Bug Fix
Doc Text:
LVM2 and all its subpackages now define strict version dependencies amongst themselves, including a dependency between the lvm2-cluster subpackage and the lvm2 package. This way the lvm2-cluster subpackage always depends on the right lvm2 package.
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-10-14 08:25:02 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:

Description Jesse Triplett 2014-04-03 17:36:07 UTC
Description of problem:
The lvm2-cluster sub package (and probably others) have a require of >= version but do not work unless they are the exact same version.  RPMs should be configured with sub packages requiring the exact version of the main package not >= because of this issue.

If you install version x of lvm2 and install version x-1 of lvm2-cluster you will see that lvm2-cluster does not work correctly and you can't use lvm2 inside a cluster.

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

How reproducible:
This is what I have from my support tech that has the issue.
1) built a cluster with 2.02.83-3.el6 installed
2) disabled test-svc
3) "yum update lvm2" which updated lvm2 and lvm2-libs
4) "service clvmd restart"

It fails to start because it can't gain an exclusive lock:

 [root@student105 ~]# clusvcadm -e test-svc
 Local machine trying to enable service:test-svc...Failure

 [root@student105 ~]# rpm -qa | grep ^lvm2 | sort

 Mar 11 11:18:38 student105 rgmanager[10062]: [lvm] Failed to activate
logical volume, Cluster/Test
 Mar 11 11:18:38 student105 rgmanager[10084]: [lvm] Attempting cleanup
of Cluster/Test
 Mar 11 11:18:38 student105 rgmanager[10111]: [lvm] Failed second
attempt to activate Cluster/Test
 Mar 11 11:18:38 student105 rgmanager[1338]: start on lvm "testha"
returned 1 (generic error)
 Mar 11 11:18:38 student105 rgmanager[1338]: #68: Failed to start
service:test-svc; return value: 1

If we upgrade lvm2-cluster and restart clvmd that will fix the problem.
I have left it in the broken state for you.

Note this is an HA-LVM configuration.  This would never happen if the sub package required the same version as the main package.

Comment 2 Alasdair Kergon 2014-04-03 22:30:00 UTC
We'll think about how to deal with this and whether or not we do still need to allow people to combine different versions.  (Normally they are compatible.)
Any fix would apply from RHEL6.6 and RHEL7.1 onwards.

Comment 3 Peter Rajnoha 2014-04-09 09:06:24 UTC
(In reply to Alasdair Kergon from comment #2)
> We'll think about how to deal with this and whether or not we do still need
> to allow people to combine different versions.  (Normally they are
> compatible.)
> Any fix would apply from RHEL6.6 and RHEL7.1 onwards.

I'd probably go with a firm dependency on exact version. What is the disadvantage? The only one I see at the moment is that clvmd is restarted on package upgrade. But that should be working...

Comment 8 Nenad Peric 2014-07-14 13:53:49 UTC
Hard dependencies are being enforced. 
As tested in Bug #1089229 (dependencies with device-mapper).

root@virt-122 ~]# yum update lvm2-2.02.107-2.el6.x86_64.rpm 
Loaded plugins: product-id, security, subscription-manager
Setting up Update Process
Examining lvm2-2.02.107-2.el6.x86_64.rpm: lvm2-2.02.107-2.el6.x86_64
Marking lvm2-2.02.107-2.el6.x86_64.rpm as an update to lvm2-2.02.107-1.el6.x86_64
Resolving Dependencies
--> Running transaction check
---> Package lvm2.x86_64 0:2.02.107-1.el6 will be updated
--> Processing Dependency: lvm2 = 2.02.107-1.el6 for package: lvm2-cluster-2.02.107-1.el6.x86_64
---> Package lvm2.x86_64 0:2.02.107-2.el6 will be an update
--> Processing Dependency: lvm2-libs = 2.02.107-2.el6 for package: lvm2-2.02.107-2.el6.x86_64
--> Finished Dependency Resolution
Error: Package: lvm2-cluster-2.02.107-1.el6.x86_64 (@beaker-ResilientStorage/6.6)
           Requires: lvm2 = 2.02.107-1.el6
           Removing: lvm2-2.02.107-1.el6.x86_64 (@anaconda-RedHatEnterpriseLinux-201407102225.x86_64/6.6)
               lvm2 = 2.02.107-1.el6
           Updated By: lvm2-2.02.107-2.el6.x86_64 (/lvm2-2.02.107-2.el6.x86_64)
               lvm2 = 2.02.107-2.el6
Error: Package: lvm2-2.02.107-2.el6.x86_64 (/lvm2-2.02.107-2.el6.x86_64)
           Requires: lvm2-libs = 2.02.107-2.el6
           Installed: lvm2-libs-2.02.107-1.el6.x86_64 (@anaconda-RedHatEnterpriseLinux-201407102225.x86_64/6.6)
               lvm2-libs = 2.02.107-1.el6
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Marking VERIFIED with 

lvm2-2.02.107-2.el6    BUILT: Fri Jul 11 15:47:33 CEST 2014
lvm2-libs-2.02.107-2.el6    BUILT: Fri Jul 11 15:47:33 CEST 2014
lvm2-cluster-2.02.107-2.el6    BUILT: Fri Jul 11 15:47:33 CEST 2014

Comment 9 errata-xmlrpc 2014-10-14 08:25:02 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.