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:
  Show dependency treegraph
 
Reported: 2016-01-27 01:36 EST by Jan Hutař
Modified: 2016-02-19 06:36 EST (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 ***

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