Bug 739227

Summary: upgrading subscription-manager breaks rhsmcertd
Product: Red Hat Enterprise Linux 6 Reporter: Jesus M. Rodriguez <jesusr>
Component: subscription-managerAssignee: Chris Duryee <cduryee>
Status: CLOSED ERRATA QA Contact: John Sefler <jsefler>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 6.2CC: cduryee
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 17:24:22 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:
Bug Depends On:    
Bug Blocks: 682238, 743047    

Description Jesus M. Rodriguez 2011-09-16 21:22:14 UTC
Upgrading subscription-manager causes an rhsm.conf.rpmnew to be created
which contains the new healFrequency attribute. I restarted rhsmcertd 
and it complained it couldn't find the attribute and fails to start.

Comment 1 Jesus M. Rodriguez 2011-09-16 21:22:30 UTC
/etc/init.d/rhsmcertd restart
Traceback (most recent call last):
  File "<string>", line 5, in <module>
  File "/usr/lib/python2.6/site-packages/rhsm/config.py", line 56, in get
    return SafeConfigParser.get(self, section, prop)
  File "/usr/lib/python2.6/site-packages/iniparse/compat.py", line 228, in get
    value = RawConfigParser.get(self, section, option, vars)
  File "/usr/lib/python2.6/site-packages/iniparse/compat.py", line 126, in get
    raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'healfrequency' in section: 'rhsmcertd'
Stopping rhsmcertd                                         [  OK  ]
Starting rhsmcertd 240 usage: rhsmcertd <interval>         [FAILED]

Comment 4 John Sefler 2011-09-17 20:52:38 UTC
Setting severity to Urgent and changing the component.
This should be a must-fix for RHEL6.2

Comment 6 Chris Duryee 2011-09-19 12:46:04 UTC
I need to do some research into the best way to handle this, looking at it now.

Comment 7 Chris Duryee 2011-09-19 18:57:46 UTC
42d835e master 0.97.2+
a29a57e RHEL6.2 0.96.10+

Comment 10 John Sefler 2011-09-22 22:31:22 UTC
Verification....


STARTING WITH INSTALLED VERSION...
[root@jsefler-stage-6workstation tmp]# rpm -ivh http://download.devel.redhat.com/brewroot/packages/subscription-manager/0.95.17/1.el6_1/x86_64/subscription-manager-0.95.17-1.el6_1.x86_64.rpm http://download.devel.redhat.com/brewroot/packages/subscription-manager/0.95.17/1.el6_1/x86_64/subscription-manager-firstboot-0.95.17-1.el6_1.x86_64.rpm http://download.devel.redhat.com/brewroot/packages/subscription-manager/0.95.17/1.el6_1/x86_64/subscription-manager-gnome-0.95.17-1.el6_1.x86_64.rpm
Retrieving http://download.devel.redhat.com/brewroot/packages/subscription-manager/0.95.17/1.el6_1/x86_64/subscription-manager-0.95.17-1.el6_1.x86_64.rpm
Retrieving http://download.devel.redhat.com/brewroot/packages/subscription-manager/0.95.17/1.el6_1/x86_64/subscription-manager-firstboot-0.95.17-1.el6_1.x86_64.rpm
Retrieving http://download.devel.redhat.com/brewroot/packages/subscription-manager/0.95.17/1.el6_1/x86_64/subscription-manager-gnome-0.95.17-1.el6_1.x86_64.rpm
Preparing...                ########################################### [100%]
   1:subscription-manager   ########################################### [ 33%]
   2:subscription-manager-gn########################################### [ 67%]
   3:subscription-manager-fi########################################### [100%]
[root@jsefler-stage-6workstation tmp]# rpm -qa | grep subscription-manager
subscription-manager-firstboot-0.95.17-1.el6_1.x86_64
subscription-manager-0.95.17-1.el6_1.x86_64
subscription-manager-gnome-0.95.17-1.el6_1.x86_64



MAKING SURE THE /etc/rhsm/rhsm.conf FILE IS ALTERED

[root@jsefler-stage-6workstation tmp]# sed -i s/certFrequency.*/certFrequency=120/g /etc/rhsm/rhsm.conf
[root@jsefler-stage-6workstation tmp]# grep -i frequency /etc/rhsm/rhsm.conf
# Frequency of certificate refresh (in minutes):
certFrequency=120
[root@jsefler-stage-6workstation tmp]# 

^^^ NOTICE THAT THE OLD PACKAGE DOES NOT CONTAIN healFrequency

[root@jsefler-stage-6workstation tmp]# service rhsmcertd start
Starting rhsmcertd 120                                     [  OK  ]
[root@jsefler-stage-6workstation tmp]# service rhsmcertd status
rhsmcertd (pid 1548) is running...
[root@jsefler-stage-6workstation tmp]# 

^^^ NOTICE rhsmcertd IS RUNNING AND ITS PROCESS ID IS 1548


NOW LET'S UPGRADE TO VERSION 0.96.11...


[root@jsefler-stage-6workstation tmp]# ls -l subscription-manager*
-rw-r--r--. 1 root root 361024 Sep 20 15:41 subscription-manager-0.96.11-1.el6.x86_64.rpm
-rw-r--r--. 1 root root 104336 Sep 20 15:41 subscription-manager-firstboot-0.96.11-1.el6.x86_64.rpm
-rw-r--r--. 1 root root 211940 Sep 20 15:41 subscription-manager-gnome-0.96.11-1.el6.x86_64.rpm
[root@jsefler-stage-6workstation tmp]# yum update -q subscription-manager*

=================================================================================================================================================================
 Package                                    Arch               Version                    Repository                                                        Size
=================================================================================================================================================================
Updating:
 subscription-manager                       x86_64             0.96.11-1.el6              /subscription-manager-0.96.11-1.el6.x86_64                       1.2 M
 subscription-manager-firstboot             x86_64             0.96.11-1.el6              /subscription-manager-firstboot-0.96.11-1.el6.x86_64              21 k
 subscription-manager-gnome                 x86_64             0.96.11-1.el6              /subscription-manager-gnome-0.96.11-1.el6.x86_64                 550 k

Transaction Summary
=================================================================================================================================================================
Upgrade       3 Package(s)

Is this ok [y/N]: y
Warning: RPMDB altered outside of yum.
warning: /etc/rhsm/rhsm.conf created as /etc/rhsm/rhsm.conf.rpmnew
Installed products updated.
[root@jsefler-stage-6workstation tmp]# 


^^^ NOTICE THAT /etc/rhsm/rhsm.conf.rpmnew WAS CREATED DURING THE UPGRADE

NOW THAT WE HAVE UPGRADED, LET'S LOOK AT rhsmcertd STATUS

[root@jsefler-stage-6workstation tmp]# service rhsmcertd status
rhsmcertd (pid 1548) is running...
[root@jsefler-stage-6workstation tmp]# 

^^^ NOTICE THAT rhsmcertd IS STILL RUNNING THE SAME PROCESS ID AS WAS RUNNING BEFORE THE UPGRADE AND WILL THEREFORE NOT INCLUDE THE NEW HEALFREQUENCY UNTIL A RESTART IS DONE.  THIS IS THE TOPIC OF BUG 740675



[root@jsefler-stage-6workstation tmp]# grep -i frequency /etc/rhsm/rhsm.conf
# Frequency of certificate refresh (in minutes):
certFrequency=120
[root@jsefler-stage-6workstation tmp]# grep -i frequency /etc/rhsm/rhsm.conf.rpmnew 
# Frequency of certificate refresh (in minutes):
certFrequency = 240
# Frequency of autoheal check (1440 min = 1 day):
healFrequency = 1440




^^^ ALSO NOTICE THAT THE NEW healFrequency IS NOT IN THE rhsm.conf file.  INSTEAD IT IS IN THE rhsm.conf.rpm.new FILE


NOW FOR THE TEST...  LET'S RESTART rhsmcertd AND ASSERT THAT IT PICKS UP A HARDCODED DEFAULT VALUE FOR healFrequency


[root@jsefler-stage-6workstation tmp]# service rhsmcertd restart
Stopping rhsmcertd                                         [  OK  ]
Starting rhsmcertd 120 1440                                [  OK  ]
[root@jsefler-stage-6workstation tmp]# 

^^^ SUCCESS! MOVING BUG TO VERIFIED



HOWEVER...  THE KNOWLEDGE THAT THERE IS A NEW rhsm.conf CONFIGURABLE PARAMETER IS UNKNOWN TO THE USER.  healFrequency is NOT IN THE rhsm.conf FILE AND IT IS NOT IN THE config --help OPTIONS...

[root@jsefler-stage-6workstation tmp]# subscription-manager config --list | grep -i frequency
   certfrequency = 120
[root@jsefler-stage-6workstation tmp]# subscription-manager config --help | grep -i frequency
  --rhsmcertd.certfrequency=RHSMCERTD.CERTFREQUENCY
                        Section: rhsmcertd, Name: certfrequency
[root@jsefler-stage-6workstation tmp]# 


ONLY AFTER APPENDING THE healFrequency CONFIGURATION TO THE rhsm.conf FILE DO THE TOOLS KNOW ABOUT IT....

[root@jsefler-stage-6workstation tmp]# cat "healFrequency = 1234" >> /etc/rhsm/rhsm.conf
cat: healFrequency = 1234: No such file or directory
[root@jsefler-stage-6workstation tmp]# echo "healFrequency = 1234" >> /etc/rhsm/rhsm.conf
[root@jsefler-stage-6workstation tmp]# subscription-manager config --list | grep -i frequency
   certfrequency = 120
   healfrequency = 1234
[root@jsefler-stage-6workstation tmp]# subscription-manager config --help | grep -i frequency
  --rhsmcertd.certfrequency=RHSMCERTD.CERTFREQUENCY
                        Section: rhsmcertd, Name: certfrequency
  --rhsmcertd.healfrequency=RHSMCERTD.HEALFREQUENCY
                        Section: rhsmcertd, Name: healfrequency
[root@jsefler-stage-6workstation tmp]# 


ADDING THIS ISSUE TO BUG 740675 TOO.

Comment 11 errata-xmlrpc 2011-12-06 17:24:22 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.

http://rhn.redhat.com/errata/RHBA-2011-1695.html