Bug 978329

Summary: Can't open subscription-manager-gui when the registered client's time is changed much earlier than the server's
Product: Red Hat Enterprise Linux 5 Reporter: xingge <gxing>
Component: subscription-managerAssignee: Carter Kozak <ckozak>
Status: CLOSED ERRATA QA Contact: IDM QE LIST <seceng-idm-qe-list>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 5.10CC: alikins, bkearney, ckozak, jesusr, jsefler, ldai, liliu
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
No description necessary
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-09-30 23:12:01 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: 840995    

Description xingge 2013-06-26 11:30:02 UTC
Description of problem:
Can't open subscription-manager-gui when the registered client's time is changed much earlier than the server's

Version-Release number of selected component (if applicable):
subscription-manager-gui-1.8.10-1.el5
subscription-manager-firstboot-1.8.10-1.el5
subscription-manager-1.8.10-1.el5
python-rhsm-1.8.12-1.el5

How reproducible:
Always

Steps to Reproduce:
1.register the system 
#subscription-manager register --username=[] --password=[]
2.Modify the system date to make the client's time earlier than the server's
#date -s 20130312
3.Open the subscription-manager-gui
#subscription-manager-gui

Actual results:
The subscription-manager-gui doesn't open

Expected results:
The subscription-manager-gui should open as the rhel5.9 and rhel6.3 does

Additional info:
I think this bug caused by certificate verify.

Comment 1 RHEL Program Management 2013-06-26 11:37:37 UTC
This request was evaluated by Red Hat Product Management for inclusion
in a Red Hat Enterprise Linux release.  Product Management has
requested further review of this request by Red Hat Engineering, for
potential inclusion in a Red Hat Enterprise Linux release for currently
deployed products.  This request is not yet committed for inclusion in
a release.

Comment 2 RHEL Program Management 2013-07-24 04:06:00 UTC
This request was not resolved in time for the current release.
Red Hat invites you to ask your support representative to
propose this request, if still desired, for consideration in
the next release of Red Hat Enterprise Linux.

Comment 3 Adrian Likins 2013-07-24 22:01:18 UTC
Looks like it is the cert verify. The connection fails because of the time diff, then we assume that if the cert is valid, that means an Expired identity cert, and raise an exception. And then handle it poorly.

2013-03-12 00:00:31,021 [DEBUG]  @connection.py:415 - Making request: GET /candlepin/consumers/e1d0671d-0c9b-4714-9d4d-f38f1759699f/compliance
2013-03-12 00:00:31,039 [ERROR]  @subscription-manager-gui:188 - 
Traceback (most recent call last):
  File "bin/subscription-manager-gui", line 171, in <module>
    main = managergui.MainWindow(auto_launch_registration=options.register)
  File "/home/adrian/src/subscription-manager/bin/subscription_manager/gui/managergui.py", line 136, in __init__
    self.backend = backend or Backend()
  File "/home/adrian/src/subscription-manager/bin/subscription_manager/gui/managergui.py", line 95, in __init__
    self.cs = require(CERT_SORTER)
  File "/home/adrian/src/subscription-manager/bin/subscription_manager/injection.py", line 103, in require
    return FEATURES.require(feature, *args, **kwargs)
  File "/home/adrian/src/subscription-manager/bin/subscription_manager/injection.py", line 74, in require
    self.providers[feature] = provider()
  File "/home/adrian/src/subscription-manager/bin/subscription_manager/cert_sorter.py", line 95, in __init__
    self.load()
  File "/home/adrian/src/subscription-manager/bin/subscription_manager/cert_sorter.py", line 190, in load
    self._parse_server_status()
  File "/home/adrian/src/subscription-manager/bin/subscription_manager/cert_sorter.py", line 201, in _parse_server_status
    status = status_cache.load_status(self.cp_provider.get_consumer_auth_cp(), self.identity.uuid)
  File "/home/adrian/src/subscription-manager/bin/subscription_manager/cache.py", line 213, in load_status
    self._sync_with_server(uep, uuid)
  File "/home/adrian/src/subscription-manager/bin/subscription_manager/cache.py", line 198, in _sync_with_server
    self.server_status = uep.getCompliance(uuid)
  File "/usr/lib64/python2.6/site-packages/rhsm-1.8.14-py2.6-linux-x86_64.egg/rhsm/connection.py", line 757, in getCompliance
    return self.conn.request_get(method)
  File "/usr/lib64/python2.6/site-packages/rhsm-1.8.14-py2.6-linux-x86_64.egg/rhsm/connection.py", line 481, in request_get
    return self._request("GET", method)
  File "/usr/lib64/python2.6/site-packages/rhsm-1.8.14-py2.6-linux-x86_64.egg/rhsm/connection.py", line 427, in _request
    raise ExpiredIdentityCertException()
ExpiredIdentityCertException

Comment 4 Carter Kozak 2013-07-29 15:39:04 UTC
commit dde3289f2d19fae7818e1eda8ec5a50d0ec521ce
Author: ckozak <ckozak>
Date:   Thu Jul 25 09:39:23 2013 -0400

    978329: catch IdentityCertException gracefully

Comment 8 xingge 2013-08-05 01:53:31 UTC
verified on RHEL-5.10-sp3-server64 on subscription-manager-1.8.15-1

Comment 10 errata-xmlrpc 2013-09-30 23:12:01 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-2013-1332.html