Bug 1063181

Summary: rpm checks versions in install mode (rpm -ivh)
Product: Red Hat Enterprise Linux 7 Reporter: Bruno Goncalves <bgoncalv>
Component: yumAssignee: James Antill <james.antill>
Status: CLOSED ERRATA QA Contact: Karel Srot <ksrot>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: james.antill, ksrot, lmiksik, pmatilai, vmukhame
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: yum-3.4.3-122.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 09:03:48 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:
Bug Depends On:    
Bug Blocks: 1113520    

Description Bruno Goncalves 2014-02-10 08:53:24 UTC
Description of problem:
Trying to install a newer version of kernel that is more recent that the current used for booting and older than the newest version installed fail.

Transaction check error:
  package kernel-3.10.0-84.el7.x86_64 (which is newer than kernel-3.10.0-71.el7.x86_64) is already installed


Version-Release number of selected component (if applicable):
yum-3.4.3-112.el7.noarch

How reproducible:
100%

Steps to Reproduce:
1.Install 3 kernel to a system
# rpm -q kernel
kernel-3.10.0-84.el7.x86_64
kernel-3.10.0-70.el7.x86_64
kernel-3.10.0-64.el7.x86_64


2.Boot to the second kernel
# uname -r
3.10.0-70.el7.x86_64

3.Try to install a kernel version higher than the current one and lower then the highest one.


Actual results:
Error will happen
  package kernel-3.10.0-84.el7.x86_64 (which is newer than kernel-3.10.0-71.el7.x86_64) is already installed



Expected results:
kernel-3.10.0-64.el7.x86_64 version should be removed and kernel-3.10.0-84.el7.x86_64 should be installed

Comment 1 Bruno Goncalves 2014-02-10 08:54:37 UTC
Sorry, in expected results kernel-3.10.0-71.el7.x86_64 should be installed.

Comment 2 Bruno Goncalves 2014-02-10 09:34:41 UTC
It can be installed using rpm with --force option.

# rpm -ivh ./kernel-3.10.0-83.el7.x86_64.rpm  --force

Comment 4 Panu Matilainen 2014-06-12 14:17:44 UTC
Um, AFAIR rpm has always behaved this way. The trick is not --force but --oldpackage (RPMPROB_FILTER_OLDPACKAGE) which is needed in this case, just like its needed in case of downgrade.

Comment 6 Panu Matilainen 2014-06-12 14:31:53 UTC
James, regression compared to what? Like said IIRC rpm has always behaved this way (that special oldpackage flag needed for old packages, whether install or something else), certainly RHEL-6 version does, as expected (just tested).

Comment 7 Panu Matilainen 2014-06-13 07:56:57 UTC
Never mind the needinfo, tested RHEL-5 and rpm behaves the same there.

Yum sets RPMPROB_FILTER_OLDPACKAGE as needed when the to-be-installed package is older than the *oldest* version of the same package, but rpm requires RPMPROB_FILTER_OLDPACKAGE for installing a version that is older than the *newest* version of installed package.

Back to yum.

Comment 12 James Antill 2014-09-29 15:46:07 UTC
 Found the problem ... yum was seeing the older installed package version, and deciding it was an upgrade. Added testcase and fix upstream.

commit fada4b8dbd30d0335a9c07067a74dccec0abbedb
Author: James Antill <james>
Date:   Mon Sep 29 11:40:54 2014 -0400

    Don't look for upgrades for install only packages. BZ 1063181.

Comment 18 errata-xmlrpc 2015-03-05 09:03:48 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.

https://rhn.redhat.com/errata/RHBA-2015-0398.html