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
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)
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.
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.