RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 732499 - 'gaierror' object has no attribute 'code' / 'error' object has no attribute 'code'
Summary: 'gaierror' object has no attribute 'code' / 'error' object has no attribute...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: subscription-manager
Version: 6.2
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: rc
: ---
Assignee: Devan Goodwin
QA Contact: John Sefler
URL:
Whiteboard:
Depends On:
Blocks: rhsm-rhel62
TreeView+ depends on / blocked
 
Reported: 2011-08-22 16:56 UTC by John Sefler
Modified: 2011-12-06 17:23 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-12-06 17:23:36 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2011:1695 0 normal SHIPPED_LIVE subscription-manager bug fix and enhancement update 2011-12-06 01:23:29 UTC

Description John Sefler 2011-08-22 16:56:44 UTC
Description of problem:
Setting proxy config values in rhsm.conf are failing when used with redeem module.


Version-Release number of selected component (if applicable):
[root@jsefler-onprem-62server ~]# rpm -q subscription-manager
subscription-manager-0.96.6-1.git.8.6e109e4.el6.x86_64
[root@jsefler-onprem-62server ~]# rpm -q python-rhsm
python-rhsm-0.96.9-1.git.3.328723e.el6.noarch


How reproducible:


Steps to Reproduce:
Setup subscription manager with a candlepin server deployed with TESTDATA=1
[root@jsefler-onprem-62server ~]# subscription-manager register --username=testuser1 --password=password --org=adminThe system has been registered with id: cd3531fc-e76e-4fb3-bd0b-4789863caede 

Edit /etc/rhsm/rhsm.conf with the following proxy values:
[root@jsefler-onprem-62server ~]# grep proxy /etc/rhsm/rhsm.conf
# an http proxy server to use
proxy_hostname=FOO
# port for http proxy server
proxy_port=1234
# user name for authenticating to an http proxy, if needed
proxy_user=
# password for basic http proxy auth, if needed
proxy_password=

[root@jsefler-onprem-62server ~]# subscription-manager redeem --email=proxytester --locale=en-us
'gaierror' object has no attribute 'code'

^^^^^ DID NOT EXPECT THIS ERROR.

Actual results:
'gaierror' object has no attribute 'code'

Expected results:
Network error, unable to connect to server.
 Please see /var/log/rhsm/rhsm.log for more information.



Additional info:
[root@jsefler-onprem-62server ~]# tail -f /var/log/rhsm/rhsm.log

2011-08-22 12:53:04,045 [INFO]  @connection.py:348 - Using certificate authentication: key = /etc/pki/consumer/key.pem, cert = /etc/pki/consumer/cert.pem, ca = /etc/rhsm/ca/, insecure = False
2011-08-22 12:53:04,046 [DEBUG]  @connection.py:188 - Loading CA PEM certificates from: /etc/rhsm/ca/
2011-08-22 12:53:04,047 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/fakamai-cp1.pem'
2011-08-22 12:53:04,047 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/jsefler-onprem-62candlepin.pem'
2011-08-22 12:53:04,047 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/redhat-uep.pem'
2011-08-22 12:53:04,048 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/candlepin-stage.pem'
2011-08-22 12:53:04,048 [DEBUG]  @connection.py:194 - Using proxy: FOO:1234
2011-08-22 12:53:04,049 [DEBUG]  @connection.py:209 - Making request: GET https://jsefler-onprem-62candlepin.usersys.redhat.com:8443/candlepin/
2011-08-22 12:53:04,078 [WARNING]  @connection.py:381 - Error fetching supported resources, this UEPConnection is likely not usable:
2011-08-22 12:53:04,078 [ERROR]  @connection.py:383 - [Errno -2] Name or service not known
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/rhsm/connection.py", line 374, in _load_supported_resources
    resources_list = self.conn.request_get("/")
  File "/usr/lib/python2.6/site-packages/rhsm/connection.py", line 250, in request_get
    return self._request("GET", method)
  File "/usr/lib/python2.6/site-packages/rhsm/connection.py", line 210, in _request
    conn.request(request_type, handler, body=body, headers=self.headers)
  File "/usr/lib64/python2.6/httplib.py", line 914, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python2.6/httplib.py", line 951, in _send_request
    self.endheaders()
  File "/usr/lib/python2.6/site-packages/rhsm/connection.py", line 105, in endheaders
    httpslib.HTTPSConnection.endheaders(self)
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 780, in _send_output
    self.send(msg)
  File "/usr/lib64/python2.6/httplib.py", line 739, in send
    self.connect()
  File "/usr/lib64/python2.6/site-packages/M2Crypto/httpslib.py", line 169, in connect
    HTTPConnection.connect(self)
  File "/usr/lib64/python2.6/httplib.py", line 720, in connect
    self.timeout)
  File "/usr/lib64/python2.6/socket.py", line 553, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno -2] Name or service not known
2011-08-22 12:53:04,084 [INFO]  @connection.py:360 - Connection Established: host: jsefler-onprem-62candlepin.usersys.redhat.com, port: 8443, handler: /candlepin
2011-08-22 12:53:04,252 [DEBUG]  @cert_sorter.py:70 - Sorting product and entitlement cert status for: 2011-08-22 12:53:04.252404
2011-08-22 12:53:04,292 [DEBUG]  @cert_sorter.py:91 - Installed product IDs: ['100000000000060', '1000000000000023', '1144', '100000000000011', '100000000000010', '100000000000013', '100000000000012', '100000000000015', '27060', '68', '917571', '1', '37069', '37068', '37080', '37065', '37067', '37060', '37062', '100000000000006', '100000000000007', '100000000000004', '100000000000005', '100000000000002', '100000000000003', '100000000000000', '100000000000001', '100000000000020', '100000000000022', '100000000000009', '100000000000008', '37090', '37070']
2011-08-22 12:53:04,293 [DEBUG]  @cert_sorter.py:81 - valid entitled products: []
2011-08-22 12:53:04,293 [DEBUG]  @cert_sorter.py:82 - expired entitled products: []
2011-08-22 12:53:04,295 [INFO]  @pkgprofile.py:114 - Server does not support packages, skipping profile upload.
2011-08-22 12:53:04,295 [DEBUG]  @connection.py:188 - Loading CA PEM certificates from: /etc/rhsm/ca/
2011-08-22 12:53:04,296 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/fakamai-cp1.pem'
2011-08-22 12:53:04,296 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/jsefler-onprem-62candlepin.pem'
2011-08-22 12:53:04,297 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/redhat-uep.pem'
2011-08-22 12:53:04,298 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/candlepin-stage.pem'
2011-08-22 12:53:04,299 [DEBUG]  @connection.py:194 - Using proxy: FOO:1234
2011-08-22 12:53:04,299 [DEBUG]  @connection.py:209 - Making request: POST https://jsefler-onprem-62candlepin.usersys.redhat.com:8443/candlepin/subscriptions?consumer_uuid=cd3531fc-e76e-4fb3-bd0b-4789863caede&email=proxytester@redhat.com&email_locale=en-us
2011-08-22 12:53:04,330 [ERROR]  @managercli.py:62 - exception caught in subscription-manager
2011-08-22 12:53:04,331 [ERROR]  @managercli.py:63 - 'gaierror' object has no attribute 'code'
Traceback (most recent call last):
  File "/usr/sbin/subscription-manager", line 78, in <module>
    sys.exit(abs(main() or 0))
  File "/usr/sbin/subscription-manager", line 69, in main
    return managercli.CLI().main()
  File "/usr/share/rhsm/subscription_manager/managercli.py", line 1225, in main
    cmd.main()
  File "/usr/share/rhsm/subscription_manager/managercli.py", line 215, in main
    self._do_command()
  File "/usr/share/rhsm/subscription_manager/managercli.py", line 712, in _do_command
    if  200 <= e.code <= 210:
AttributeError: 'gaierror' object has no attribute 'code'

Comment 1 John Sefler 2011-08-22 17:08:16 UTC
Similarly I get the error: 'error' object has no attribute 'code' in the following scenario...

[root@jsefler-onprem-62server ~]# grep proxy /etc/rhsm/rhsm.conf
# an http proxy server to use
proxy_hostname=auto-services.usersys.redhat.com
# port for http proxy server
proxy_port=3128
# user name for authenticating to an http proxy, if needed
proxy_user=redhat
# password for basic http proxy auth, if needed
proxy_password=FOOBAR


[root@jsefler-onprem-62server ~]# subscription-manager redeem --email=proxytester
'error' object has no attribute 'code'



[root@jsefler-onprem-62server ~]# tail -f /var/log/rhsm/rhsm.log

2011-08-22 12:56:32,034 [INFO]  @connection.py:348 - Using certificate authentication: key = /etc/pki/consumer/key.pem, cert = /etc/pki/consumer/cert.pem, ca = /etc/rhsm/ca/, insecure = False
2011-08-22 12:56:32,035 [DEBUG]  @connection.py:188 - Loading CA PEM certificates from: /etc/rhsm/ca/
2011-08-22 12:56:32,035 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/fakamai-cp1.pem'
2011-08-22 12:56:32,036 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/jsefler-onprem-62candlepin.pem'
2011-08-22 12:56:32,037 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/redhat-uep.pem'
2011-08-22 12:56:32,038 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/candlepin-stage.pem'
2011-08-22 12:56:32,038 [DEBUG]  @connection.py:194 - Using proxy: auto-services.usersys.redhat.com:3128
2011-08-22 12:56:32,039 [DEBUG]  @connection.py:209 - Making request: GET https://jsefler-onprem-62candlepin.usersys.redhat.com:8443/candlepin/
2011-08-22 12:56:32,049 [WARNING]  @connection.py:381 - Error fetching supported resources, this UEPConnection is likely not usable:
2011-08-22 12:56:32,049 [ERROR]  @connection.py:383 - Proxy connection failed: 407
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/rhsm/connection.py", line 374, in _load_supported_resources
    resources_list = self.conn.request_get("/")
  File "/usr/lib/python2.6/site-packages/rhsm/connection.py", line 250, in request_get
    return self._request("GET", method)
  File "/usr/lib/python2.6/site-packages/rhsm/connection.py", line 210, in _request
    conn.request(request_type, handler, body=body, headers=self.headers)
  File "/usr/lib64/python2.6/httplib.py", line 914, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python2.6/httplib.py", line 951, in _send_request
    self.endheaders()
  File "/usr/lib/python2.6/site-packages/rhsm/connection.py", line 105, in endheaders
    httpslib.HTTPSConnection.endheaders(self)
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 780, in _send_output
    self.send(msg)
  File "/usr/lib64/python2.6/httplib.py", line 739, in send
    self.connect()
  File "/usr/lib64/python2.6/site-packages/M2Crypto/httpslib.py", line 180, in connect
    raise socket.error, "Proxy connection failed: %d" % code
error: Proxy connection failed: 407
2011-08-22 12:56:32,052 [INFO]  @connection.py:360 - Connection Established: host: jsefler-onprem-62candlepin.usersys.redhat.com, port: 8443, handler: /candlepin
2011-08-22 12:56:32,150 [DEBUG]  @cert_sorter.py:70 - Sorting product and entitlement cert status for: 2011-08-22 12:56:32.150275
2011-08-22 12:56:32,190 [DEBUG]  @cert_sorter.py:91 - Installed product IDs: ['100000000000060', '1000000000000023', '1144', '100000000000011', '100000000000010', '100000000000013', '100000000000012', '100000000000015', '27060', '68', '917571', '1', '37069', '37068', '37080', '37065', '37067', '37060', '37062', '100000000000006', '100000000000007', '100000000000004', '100000000000005', '100000000000002', '100000000000003', '100000000000000', '100000000000001', '100000000000020', '100000000000022', '100000000000009', '100000000000008', '37090', '37070']
2011-08-22 12:56:32,191 [DEBUG]  @cert_sorter.py:81 - valid entitled products: []
2011-08-22 12:56:32,191 [DEBUG]  @cert_sorter.py:82 - expired entitled products: []
2011-08-22 12:56:32,192 [INFO]  @pkgprofile.py:114 - Server does not support packages, skipping profile upload.
2011-08-22 12:56:32,194 [DEBUG]  @connection.py:188 - Loading CA PEM certificates from: /etc/rhsm/ca/
2011-08-22 12:56:32,194 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/fakamai-cp1.pem'
2011-08-22 12:56:32,195 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/jsefler-onprem-62candlepin.pem'
2011-08-22 12:56:32,195 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/redhat-uep.pem'
2011-08-22 12:56:32,196 [DEBUG]  @connection.py:171 - Loading CA certificate: '/etc/rhsm/ca/candlepin-stage.pem'
2011-08-22 12:56:32,197 [DEBUG]  @connection.py:194 - Using proxy: auto-services.usersys.redhat.com:3128
2011-08-22 12:56:32,197 [DEBUG]  @connection.py:209 - Making request: POST https://jsefler-onprem-62candlepin.usersys.redhat.com:8443/candlepin/subscriptions?consumer_uuid=cd3531fc-e76e-4fb3-bd0b-4789863caede&email=proxytester@redhat.com&email_locale=en-us
2011-08-22 12:56:32,224 [ERROR]  @managercli.py:62 - exception caught in subscription-manager
2011-08-22 12:56:32,224 [ERROR]  @managercli.py:63 - 'error' object has no attribute 'code'
Traceback (most recent call last):
  File "/usr/sbin/subscription-manager", line 78, in <module>
    sys.exit(abs(main() or 0))
  File "/usr/sbin/subscription-manager", line 69, in main
    return managercli.CLI().main()
  File "/usr/share/rhsm/subscription_manager/managercli.py", line 1225, in main
    cmd.main()
  File "/usr/share/rhsm/subscription_manager/managercli.py", line 215, in main
    self._do_command()
  File "/usr/share/rhsm/subscription_manager/managercli.py", line 712, in _do_command
    if  200 <= e.code <= 210:
AttributeError: 'error' object has no attribute 'code'

Comment 2 Devan Goodwin 2011-08-23 19:16:54 UTC
Steps to reproduce, change to a bogus hostname in /etc/rhsm/rhsm.conf. The original gaierror was most likely a result of the candlepin host being unreachable at that time.

Issue in error handling in subscription-manager found, working on a fix.

Comment 3 Devan Goodwin 2011-08-24 15:19:05 UTC
Fixed in subscription-manager.git: 8157ab1b9c3634cbe71607ca9dc71a1bd4bb15e4

Just had to fix the error handling to properly report non-RestlibExceptions (which don't have a code). 

So to be clear I believe this surfaced because the candlepin server in question was unreachable, which is easy to simulate for verifying: subscription-manager config --server.hostname bogusserver.com

You should now get a proper error message and exception logged.

Comment 4 Shwetha Kallesh 2011-08-25 06:39:50 UTC
Moving the bug to verified..

Steps to reproduce :

1)
[root@sachbeta pki]# grep proxy /etc/rhsm/rhsm.conf
# an http proxy server to use
proxy_hostname =auto-services.usersys.redhat.com
# port for http proxy server
proxy_port =3128
# user name for authenticating to an http proxy, if needed
proxy_user =redhat
# password for basic http proxy auth, if needed
proxy_password =FOOBAR

[root@sachbeta pki]# subscription-manager redeem --email=proxytester
Network error, unable to connect to server.
 Please see /var/log/rhsm/rhsm.log for more information.

2)
[root@sachbeta pki]# grep proxy /etc/rhsm/rhsm.conf
# an http proxy server to use
proxy_hostname =FOO
# port for http proxy server
proxy_port =1234
# user name for authenticating to an http proxy, if needed
proxy_user =
# password for basic http proxy auth, if needed
proxy_password =

[root@sachbeta pki]# subscription-manager redeem --email=proxytester --locale=en-us
Network error, unable to connect to server.
 Please see /var/log/rhsm/rhsm.log for more information

Comment 5 errata-xmlrpc 2011-12-06 17:23:36 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


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