Bug 149003

Summary: cman-kernel rpm not properlly detecting conflicts
Product: [Retired] Red Hat Cluster Suite Reporter: Adam "mantis" Manthei <amanthei>
Component: cmanAssignee: Chris Feist <cfeist>
Status: CLOSED CURRENTRELEASE QA Contact: Cluster QE <mspqa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 4CC: cluster-maint, jbrassow
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-01-04 19:07:43 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Adam "mantis" Manthei 2005-02-17 21:22:42 UTC
Description of problem:
The cman-kernel rpm does not detect when files conflict.  The cman-kernel rpm
needs to be able to install multiple versions on a system at the same time for
the case when the rpms are for different kernel versions.  This allows a user to
move from an older kernel to a newer kernel, and back again if neccesarry.  
For example, a user could have both kernels 2.6.9-1.906 and 2.6.9-5 installed,
and would consequently require two versions of cman-kernel to be installed as well.

The problem right now is that there is no checking for conflicting files, so if
two cman-kernel packages were built for the same kernel, both packages could be
installed causing one to overwrite the other without any warning given to the
user.  In this case, the rpm needs to be able to detect that there are
conflicting files and abort the install, requiring --upgrade to be used instead.

Version-Release number of selected component (if applicable):
cman-kernel-2.6.9-18.0.i686.rpm
cman-kernel-2.6.9-20.0.i686.rpm
(I think the other -kernel rpms have the same problem)

How reproducible:
always

Steps to Reproduce:
1. rpm -iv cman-kernel-2.6.9-18.0.i686.rpm
2. rpm -iv cman-kernel-2.6.9-20.0.i686.rpm

  
Actual results:
#
# I installed two version of cman
#
[root@trin-04 ~]# rpm -qa | grep cman-kernel
cman-kernel-2.6.9-18.0
cman-kernel-2.6.9-20.0

#
# A listing shows that both version isntall their files in the same place
#
[root@trin-04 ~]# rpm -ql cman-kernel-2.6.9-18.0
/lib/modules
/lib/modules/2.6.9-5.EL
/lib/modules/2.6.9-5.EL/kernel
/lib/modules/2.6.9-5.EL/kernel/cluster
/lib/modules/2.6.9-5.EL/kernel/cluster/cman.ko
/lib/modules/2.6.9-5.EL/kernel/cluster/cman.symvers
/lib/modules/2.6.9-5.ELsmp
/lib/modules/2.6.9-5.ELsmp/kernel
/lib/modules/2.6.9-5.ELsmp/kernel/cluster
/lib/modules/2.6.9-5.ELsmp/kernel/cluster/cman.ko
/lib/modules/2.6.9-5.ELsmp/kernel/cluster/cman.symvers

[root@trin-04 ~]# rpm -ql cman-kernel-2.6.9-20.0
/lib/modules
/lib/modules/2.6.9-5.EL
/lib/modules/2.6.9-5.EL/kernel
/lib/modules/2.6.9-5.EL/kernel/cluster
/lib/modules/2.6.9-5.EL/kernel/cluster/cman.ko
/lib/modules/2.6.9-5.EL/kernel/cluster/cman.symvers
/lib/modules/2.6.9-5.ELsmp
/lib/modules/2.6.9-5.ELsmp/kernel
/lib/modules/2.6.9-5.ELsmp/kernel/cluster
/lib/modules/2.6.9-5.ELsmp/kernel/cluster/cman.ko
/lib/modules/2.6.9-5.ELsmp/kernel/cluster/cman.symvers

#
# rpm verify fails for the version installed first since it's files were 
# overwritten by the later version
#
[root@trin-04 ~]# rpm -qV cman-kernel-2.6.9-18.0
S.5....T    /lib/modules/2.6.9-5.EL/kernel/cluster/cman.ko
.......T    /lib/modules/2.6.9-5.EL/kernel/cluster/cman.symvers
S.5....T    /lib/modules/2.6.9-5.ELsmp/kernel/cluster/cman.ko
.......T    /lib/modules/2.6.9-5.ELsmp/kernel/cluster/cman.symvers

#
# these files are OK
#
[root@trin-04 ~]# rpm -qV cman-kernel-2.6.9-20.0

#
# remove the old rpm
#
[root@trin-04 ~]# rpm -e cman-kernel-2.6.9-18.0

#
# It takes the files with it leaving the updated system in a BadState
#
[root@trin-04 ~]# rpm -qV cman-kernel-2.6.9-20.0
missing     /lib/modules/2.6.9-5.EL/kernel/cluster/cman.ko
missing     /lib/modules/2.6.9-5.EL/kernel/cluster/cman.symvers
missing     /lib/modules/2.6.9-5.ELsmp/kernel/cluster/cman.ko
missing     /lib/modules/2.6.9-5.ELsmp/kernel/cluster/cman.symvers


Expected results:


Additional info:

Comment 1 Chris Feist 2005-02-24 23:13:49 UTC
This seems to be a problem with rpm, I've filed a bug on rpm bz#149425
which when fixed will hopefully resolve this problem.


Comment 2 Chris Feist 2005-03-14 19:24:15 UTC
Turns out the kernel rpm provides 'kernel = 2.6.9', which matches the
'Requires: kernel=2.6.9-5.EL' as well as 'Requires:
kernel=2.6.9-8.EL'. I've modified cman-kernel (and dlm-kernel,
gnbd-kernel, GFS-kernel) to Require /lib/modules/xxxx instead. 
(Changes will be in the 2nd build on 3/14 & after.)