Bug 983247 - 'ascii' codec can't encode characters
'ascii' codec can't encode characters
Status: CLOSED WORKSFORME
Product: Pulp
Classification: Community
Component: z_other (Show other bugs)
2.2 Beta
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: pulp-bugs
Preethi Thomas
: Triaged
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-07-10 15:33 EDT by Og Maciel
Modified: 2014-01-03 16:10 EST (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-01-03 16:10:54 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 Og Maciel 2013-07-10 15:33:49 EDT
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 15:38:20 EDT
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 14:17:00 EDT
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 16:10:54 EST
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.