Bug 1302198 - remote package upgrade saying newer package is installed, but it is not
remote package upgrade saying newer package is installed, but it is not
Status: CLOSED DUPLICATE of bug 1292288
Product: Spacewalk
Classification: Community
Component: Clients (Show other bugs)
2.4
Unspecified Unspecified
unspecified Severity medium
: ---
: ---
Assigned To: Jiří Dostál
Red Hat Satellite QA List
:
Depends On:
Blocks: space27
  Show dependency treegraph
 
Reported: 2016-01-27 01:36 EST by Jan Hutař
Modified: 2017-09-28 14:11 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2016-02-19 06:36:44 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Jan Hutař 2016-01-27 01:36:48 EST
Description of problem:
I have "openssl-0.9.8e-36.0.1.el5_11" installed and when I attempt to remotely upgrade to "openssl-0.9.8e-37.el5_11", rhn_check fails with "More recent version of package openssl-0:0.9.8e-37.el5_11.i686 is already installed".


Version-Release number of selected component (if applicable):
rpm-python-4.4.2.3-36.el5_11
rhnlib-2.5.77-1.el5
yum-rhn-plugin-2.4.6-1.el5
yum-3.2.22-40.el5.centos
rhn-client-tools-2.4.11-1.el5


How reproducible:
always


Steps to Reproduce:
1. Have system with "openssl-0.9.8e-36.0.1.el5_11" installed
2. Attempt to remotely upgrade to "openssl-0.9.8e-37.el5_11"


Actual results:
[root@detr-fire-02-pv ~]# rhn_check -vv
D: check_action{'action': "<?xml version='1.0'?>\n<methodCall>\n<methodName>packages.update</methodName>\n<params>\n<param>\n<value><array><data>\n<value><array><data>\n<value><string>openssl</string></value>\n<value><string>0.9.8e</string></value>\n<value><string>37.el5_11</string></value>\n<value><string></string></value>\n<value><string>i686</string></value>\n</data></array></value>\n</data></array></value>\n</param>\n</params>\n</methodCall>\n", 'version': 2, 'id': 307247}
updateLoginInfo() login info
D: login(forceUpdate=True) invoked
logging into up2date server
D: rpcServer: Calling XMLRPC up2date.login
D: writeCachedLogin() invoked
D: Wrote pickled loginInfo at 1453828073.63 with expiration of 1453831673.63 seconds.
successfully retrieved authentication token from up2date server
D: logininfo:{'X-RHN-Server-Id': 1000010853, 'X-RHN-Auth-Server-Time': '1453828073.61', 'X-RHN-Auth': '/(********)', 'X-RHN-Auth-Channels': [['MonthlyBaseline-centos5-i386', '20141215160147', '1', '1'], ['MonthlyBaseline-centos5-i386-fasttrack', '20140313113850', '0', '1'], ['MonthlyBaseline-centos5-i386-opsview-client', '20140815170747', '0', '1'], ['MonthlyBaseline-centos5-i386-updates', '20160116134506', '0', '1'], ['MonthlyBaseline-centos5-i386-vmwaretools', '20140313114013', '0', '1'], ['MonthlyBaseline-epel5-centos5-i386', '20160116134548', '0', '1'], ['MonthlyBaseline-spacewalk21-client-centos5-i386', '20151016144043', '0', '1']], 'X-RHN-Auth-User-Id': '', 'X-RHN-Auth-Expire-Offset': '3600.0'}
D: handle_action{'action': "<?xml version='1.0'?>\n<methodCall>\n<methodName>packages.update</methodName>\n<params>\n<param>\n<value><array><data>\n<value><array><data>\n<value><string>openssl</string></value>\n<value><string>0.9.8e</string></value>\n<value><string>37.el5_11</string></value>\n<value><string></string></value>\n<value><string>i686</string></value>\n</data></array></value>\n</data></array></value>\n</param>\n</params>\n</methodCall>\n", 'version': 2, 'id': 307247}
D: handle_action actionid = 307247, version = 2
D: do_call packages.update([['openssl', '0.9.8e', '37.el5_11', '', 'i686']],){'cache_only': None}
Loaded plugins: fastestmirror, kmod, rhnplugin
D: rpcServer: Calling XMLRPC up2date.listChannels
This system is receiving updates from RHN Classic or Red Hat Satellite.
Loading mirror speeds from cached hostfile
Loading mirror speeds from cached hostfile
D: Called update[['openssl', '0.9.8e', '37.el5_11', '', 'i686']]
D: More recent version of package openssl-0:0.9.8e-37.el5_11.i686 is already installed
D: Sending back response(0, 'Requested packages already installed', {})
D: do_call packages.checkNeedUpdate('rhnsd=1',){}
D: local action status: (0, 'rpm database not modified since last update (or package list recently updated)', {})
D: rpcServer: Calling XMLRPC registration.welcome_message
[root@detr-fire-02-pv ~]# rpm -q openssl
openssl-0.9.8e-36.0.1.el5_11


Expected results:
Should e installed


Additional info:
This was found by "Coffman, Anthony J" <Tony.Coffman@snapon.com> on Spacewalk list. Thank you!
Comment 1 Jan Hutař 2016-01-27 01:41:25 EST
With this debugging code added, this is the output:

--- usr/share/rhn/actions/packages.py.ORIG	2016-01-26 22:01:10.002192351 +0100
+++ usr/share/rhn/actions/packages.py	2016-01-26 22:04:56.623616475 +0100
@@ -344,6 +344,10 @@
 
         found = False
         for pkg in pkgs:
+            current = pkg.returnEVR()
+            print "Current:", current.epoch, current.version, current.release
+            print "Candidate:", evr.epoch, evr.version, evr.release
+            print "Comparasion:", current.compare(evr)
             if pkg.returnEVR().compare(evr) == 0:
                 log.log_debug('Package %s already installed' \
                     % _yum_package_tup(package))

this was shown by rhn_check:

[...]
D: Called update[['openssl', '0.9.8e', '37.el5_11', '', 'i686']]
Current: 0 0.9.8e 36.0.1.el5_11
Candidate: None 0.9.8e 37.el5_11
Comparasion: 1
D: More recent version of package openssl-0:0.9.8e-37.el5_11.i686 is already installed
[...]
Comment 2 Jan Hutař 2016-01-27 01:43:13 EST
And this is a python console session possibly touching the issue:

# python
Python 2.4.3 (#1, Jan  9 2013, 06:49:54)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import yum.packages
>>> current = yum.packages.PackageEVR(None, '0.9.8e', '36.0.1.el5_11')
>>> new = yum.packages.PackageEVR(None, '0.9.8e', '37.el5_11')
>>> current.compare(new)
-1
>>> new = yum.packages.PackageEVR('', '0.9.8e', '37.el5_11')
>>> current.compare(new)
1
>>>

(sorry for attempt with epoch 0 missing)
Comment 3 Jan Hutař 2016-01-27 03:08:51 EST
Also on mine reproducer I do not see updates showing on webUI for that system. With both OLD and NEW openssl versions installed I'm getting:

# rpm -q openssl --qf "%{EPOCH}\n"
(none)
Comment 4 Tony Coffman 2016-02-17 12:25:37 EST
I think this may be a duplicate with bug 1292288
Comment 5 Jiří Dostál 2016-02-19 06:36:44 EST
Marking this one as duplicate of 1292288. Please check 1292288 for update.

*** This bug has been marked as a duplicate of bug 1292288 ***
Comment 6 Eric Herget 2017-09-28 14:11:19 EDT
This BZ closed some time during 2.5, 2.6 or 2.7.  Adding to 2.7 tracking bug.

Note You need to log in before you can comment on or make changes to this bug.