Bug 983247 - 'ascii' codec can't encode characters
Summary: 'ascii' codec can't encode characters
Keywords:
Status: CLOSED WORKSFORME
Alias: None
Product: Pulp
Classification: Retired
Component: z_other
Version: 2.2 Beta
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: pulp-bugs
QA Contact: Preethi Thomas
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-07-10 19:33 UTC by Og Maciel
Modified: 2014-01-03 21:10 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-01-03 21:10:54 UTC
Embargoed:


Attachments (Terms of Use)

Description Og Maciel 2013-07-10 19:33:49 UTC
Description of problem:

Performing a standard repo sync fails with the following error:

  'ascii' codec can't encode characters in position 73-74: ordinal not in
range(128)

Version-Release number of selected component (if applicable):

BeautifulSoup==3.0.8.1
CherryPy==3.2.2
M2Crypto==0.21.1
PyPAM==0.5.0
PyXML==0.8.4
PyYAML==3.10
SOAPpy==0.11.6
Twisted-Core==8.2.0
Twisted-Web==8.2.0
backports.ssl-match-hostname==3.2a3
beah==0.6.45.dev201306062320
chardet==2.0.1
distribute==0.6.10
ethtool==0.6
eventlet==0.9.17
fpconst==0.7.3
greenlet==0.3.1
grinder==0.1.16
httplib2==0.7.7
iniparse==0.3.1
isodate==0.5.0
iwlib==1.0
nectar==0.99
oauth2==1.5.170
okaara==1.0.32
ordereddict==1.1
policycoreutils-default-encoding==0.1
pulp-node-admin-extensions==2.1.0
pulp-node-common==2.0.0
pulp-node-parent==2.1.0
pulp-puppet-common==2.1.0
pulp-puppet-extensions-admin==2.1.0
pulp-puppet-plugins==2.1.0
pulp-rpm==2.0.0
pulp-rpm-plugins==2.2.0a
pyOpenSSL==0.10
pycurl==7.19.0
pygpgme==0.1
pyliblzma==0.5.3
pymongo==2.1.1
python-dateutil==1.4.1
python-dmidecode==3.10.13
python-ldap==2.3.10
qpid-python==0.14
requests==1.1.0
rhnlib==2.5.22
rhsm==1.8.0
rhts==4.0
setools==1.0
simplejson==2.0.9
six==1.1.0
urlgrabber==3.9.1
urllib3==1.5
web.py==0.37
yum-metadata-parser==1.1.2
zope.interface==3.5.2

How reproducible:


Steps to Reproduce:

# cat > /etc/sysconfig/iptables <<EOF
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5671 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5672 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
EOF

# service iptables start
# service iptables status
# restorecon -RvvF /

# subscription-manager  register --force --username=$USERNAME --password=$PASSWORD --autosubscribe

# cat > /etc/yum.repos.d/pulp.repo <<EOF
[pulp]
name=Pulp Nightly
baseurl=http://repos.fedorapeople.org/repos/pulp/pulp/v2/beta/6Server/x86_64/
enabled=1
gpgcheck=0
EOF

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum repolist
# yum-config-manager --enable rhel-6-server-optional-rpms
# yum-config-manager --disable \*jb-eap\*
# yes|yum groupinstall -y pulp-server
# yes|yum groupinstall -y  pulp-admin
# yes|yum install pulp-nodes-parent pulp-nodes-admin-extensions

# pulp-admin login -u admin -p admin
Successfully logged in. Session certificate will expire at Jul 17 16:17:43 2013
GMT.

# pulp-admin rpm repo create --repo-id zoo --feed http://repos.fedorapeople.org/repos/pulp/pulp/demo_repos/zoo/ 
Successfully created repository [zoo]

# pulp-admin rpm repo sync run --repo-id zoo
+----------------------------------------------------------------------+
                     Synchronizing Repository [zoo]
+----------------------------------------------------------------------+

This command may be exited by pressing ctrl+c without affecting the actual
operation on the server.

Downloading metadata...
[\]
... failed

'ascii' codec can't encode characters in position 73-74: ordinal not in
range(128)


Actual results:


Expected results:


Additional info:

pulp.log shows:

2013-07-10 12:18:14,846 urllib3.connectionpool:INFO: Starting new HTTP connection (1): repos.fedorapeople.org
2013-07-10 12:18:15,211 pulp_rpm.plugins.importers.yum.sync:ERROR: sync failed
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/pulp_rpm/plugins/importers/yum/sync.py", line 109, in run
    metadata_files = self.get_metadata()
  File "/usr/lib/python2.6/site-packages/pulp_rpm/plugins/importers/yum/sync.py", line 192, in get_metadata
    metadata_files.download_repomd()
  File "/usr/lib/python2.6/site-packages/pulp_rpm/plugins/importers/yum/repomd/metadata.py", line 137, in download_repomd
    self.downloader.download([repomd_request])
  File "/usr/lib/python2.6/site-packages/nectar/downloaders/revent.py", line 83, in download
    for report in pool.imap(self._fetch, request_list, _session_generator()):
  File "/usr/lib/python2.6/site-packages/eventlet/greenpool.py", line 232, in next

Comment 1 Og Maciel 2013-07-10 19:38:20 UTC
2013-07-10 12:18:14,846 urllib3.connectionpool:INFO: Starting new HTTP connection (1): repos.fedorapeople.org
2013-07-10 12:18:15,211 pulp_rpm.plugins.importers.yum.sync:ERROR: sync failed
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/pulp_rpm/plugins/importers/yum/sync.py", line 109, in run
    metadata_files = self.get_metadata()
  File "/usr/lib/python2.6/site-packages/pulp_rpm/plugins/importers/yum/sync.py", line 192, in get_metadata
    metadata_files.download_repomd()
  File "/usr/lib/python2.6/site-packages/pulp_rpm/plugins/importers/yum/repomd/metadata.py", line 137, in download_repomd
    self.downloader.download([repomd_request])
  File "/usr/lib/python2.6/site-packages/nectar/downloaders/revent.py", line 83, in download
    for report in pool.imap(self._fetch, request_list, _session_generator()):
  File "/usr/lib/python2.6/site-packages/eventlet/greenpool.py", line 232, in next
    val = self.waiters.get().wait()
  File "/usr/lib/python2.6/site-packages/eventlet/greenthread.py", line 166, in wait
    return self._exit_event.wait()
  File "/usr/lib/python2.6/site-packages/eventlet/event.py", line 116, in wait
    return hubs.get_hub().switch()
  File "/usr/lib/python2.6/site-packages/eventlet/hubs/hub.py", line 177, in switch
    return self.greenlet.switch()
  File "/usr/lib/python2.6/site-packages/eventlet/greenthread.py", line 192, in main
    result = function(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/nectar/downloaders/revent.py", line 199, in _fetch
    _LOG.error(str(e))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 73-74: ordinal not in range(128)
2013-07-10 12:18:15,216 pulp.server.dispatch.task:ERROR: Importer indicated a failed response
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/pulp/server/dispatch/task.py", line 138, in _run
    result = call(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/pulp/server/managers/repo/sync.py", line 117, in sync
    raise PulpExecutionException(_('Importer indicated a failed response'))
PulpExecutionException: Importer indicated a failed response
2013-07-10 12:18:15,217 pulp.server.dispatch.task:INFO: FAILURE: Task 52914c7e-e5ec-49a8-acd3-63d73c1ba3d3: CallRequest: RepoSyncManager.sync(u'zoo', sync_config_override=None)

Comment 2 Michael Hrivnak 2013-07-18 18:17:00 UTC
This looks like an error occurred while trying to download the repomd.xml file, and for some reason, some part of the error message contained a non-ascii character.

I'm not able to reproduce it, and in fact, we've done hundreds if not thousands of syncs against this very repository without issue. So perhaps this was an isolated incident involving an unusual error message from the upstream server?

In any case, since the symptom here is just a failure to properly report a download error, this is not a 2.2 blocker.

The fix will likely just be to have nectar properly handle the possibility that the DownloadFailed error message or the requested URL might include non-ascii characters.

Comment 3 Randy Barlow 2014-01-03 21:10:54 UTC
Since this issue has not returned, and it has been 6 months since it is reporting, I am closing this bug for now. Feel free to reopen if you are able to reproduce it.


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