#249 urllib3 import errors on stg and prod
Closed: Invalid Opened by kparal.

On stg, rpmlint failed on dar-2.4.17-3.fc23 with this error:

[libtaskotron] 04:02:09 CRITICAL Traceback (most recent call last):
  File "/usr/bin/runtask", line 9, in <module>
    load_entry_point('libtaskotron==0.3.15', 'console_scripts', 'runtask')()
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 263, in main
    task_runner.run()
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 61, in run
    self.do_actions()
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 145, in do_actions
    self.do_single_action(action)
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 115, in do_single_action
    self._load_directive(directive_name)
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 76, in _load_directive
    loaded_directive = imp.load_source(real_name, directive_file)
  File "/usr/lib/python2.7/site-packages/libtaskotron/directives/resultsdb_directive.py", line 86, in <module>
    import resultsdb_api
  File "/usr/lib/python2.7/site-packages/resultsdb_api.py", line 19, in <module>
    import requests
  File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 58, in <module>
    from . import utils
  File "/usr/lib/python2.7/site-packages/requests/utils.py", line 26, in <module>
    from .compat import parse_http_list as _parse_list_header
  File "/usr/lib/python2.7/site-packages/requests/compat.py", line 7, in <module>
    from .packages import chardet
  File "/usr/lib/python2.7/site-packages/requests/packages/__init__.py", line 3, in <module>
    from . import urllib3
  File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/__init__.py", line 16, in <module>
    from . import exceptions
ImportError: cannot import name exceptions

https://taskotron.stg.fedoraproject.org/taskmaster/builders/x86_64/builds/130784/steps/runtask/logs/stdio

On production, rpmlint on the same package ended with a different error:

[libtaskotron] 04:02:09 CRITICAL Traceback (most recent call last):
  File "/usr/bin/runtask", line 9, in <module>
    load_entry_point('libtaskotron==0.3.15', 'console_scripts', 'runtask')()
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 263, in main
    task_runner.run()
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 61, in run
    self.do_actions()
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 145, in do_actions
    self.do_single_action(action)
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 115, in do_single_action
    self._load_directive(directive_name)
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 76, in _load_directive
    loaded_directive = imp.load_source(real_name, directive_file)
  File "/usr/lib/python2.7/site-packages/libtaskotron/directives/resultsdb_directive.py", line 86, in <module>
    import resultsdb_api
  File "/usr/lib/python2.7/site-packages/resultsdb_api.py", line 19, in <module>
    import requests
  File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 58, in <module>
    from . import utils
  File "/usr/lib/python2.7/site-packages/requests/utils.py", line 32, in <module>
    from .exceptions import InvalidURL
  File "/usr/lib/python2.7/site-packages/requests/exceptions.py", line 10, in <module>
    from .packages.urllib3.exceptions import HTTPError as BaseHTTPError
  File "/usr/lib/python2.7/site-packages/requests/packages/__init__.py", line 83, in load_module
    raise ImportError("No module named '%s'" % (name,))
ImportError: No module named 'requests.packages.urllib3'

https://taskotron.fedoraproject.org/taskmaster/builders/x86_64/builds/84037/steps/runtask/logs/stdio

However, we see the first error happen on prod also for codeblocks-13.12-17.fc23:

[libtaskotron] 04:02:15 CRITICAL Traceback (most recent call last):
  File "/usr/bin/runtask", line 9, in <module>
    load_entry_point('libtaskotron==0.3.15', 'console_scripts', 'runtask')()
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 263, in main
    task_runner.run()
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 61, in run
    self.do_actions()
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 145, in do_actions
    self.do_single_action(action)
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 115, in do_single_action
    self._load_directive(directive_name)
  File "/usr/lib/python2.7/site-packages/libtaskotron/runner.py", line 76, in _load_directive
    loaded_directive = imp.load_source(real_name, directive_file)
  File "/usr/lib/python2.7/site-packages/libtaskotron/directives/resultsdb_directive.py", line 86, in <module>
    import resultsdb_api
  File "/usr/lib/python2.7/site-packages/resultsdb_api.py", line 19, in <module>
    import requests
  File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 58, in <module>
    from . import utils
  File "/usr/lib/python2.7/site-packages/requests/utils.py", line 26, in <module>
    from .compat import parse_http_list as _parse_list_header
  File "/usr/lib/python2.7/site-packages/requests/compat.py", line 7, in <module>
    from .packages import chardet
  File "/usr/lib/python2.7/site-packages/requests/packages/__init__.py", line 3, in <module>
    from . import urllib3
  File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/__init__.py", line 16, in <module>
    from . import exceptions
ImportError: cannot import name exceptions

https://taskotron.fedoraproject.org/taskmaster/builders/x86_64/builds/84032/steps/runtask/logs/stdio

When I run these locally, I can't reproduce it.


There are many other rpmlint tasks which were executed just fine for both prod and stg.

I've found out that python-requests bundle their own urllib3:
https://github.com/kennethreitz/requests/tree/master/requests/packages
and they refuse to stop doing that:
https://github.com/kennethreitz/requests/issues/1811

Fedora then changes the bundled libraries to symlinks to system libraries:
http://pkgs.fedoraproject.org/cgit/python-requests.git/tree/python-requests.spec

However, after further examination, I can't find the root cause of this. I ssh'd to one of those build slaves, and all the directories are there, there should be no problem in importing it. I tried it from command line, it worked.

This hasn't occurred again, so we'll probably attribute it to a synchronized cluster of cosmic rays... sigh.

Metadata