Build fails when it previously successfully completed

#1

I have Travis CI set up for my fork of openpilot here: https://github.com/ShaneSmiskol/openpilot

However, since about last week every commit has been erroring because of:

TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

Here’s the full traceback:

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 328, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 748, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 360, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 577, in _prepare_file
    session=self.session, hashes=hashes)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 810, in unpack_url
    hashes=hashes
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 649, in unpack_http_url
    hashes)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 842, in _download_http_url
    stream=True,
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 480, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 378, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/usr/share/python-wheels/CacheControl-0.11.5-py2.py3-none-any.whl/cachecontrol/adapter.py", line 46, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/adapters.py", line 376, in send
    timeout=timeout
  File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 610, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 228, in increment
    total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
The command '/bin/sh -c pip install -r /tmp/requirements_openpilot.txt' returned a non-zero code: 2

It looks like it’s coming from urllib3, however since it previously was working fine before this, I’m really stumped why it’s not working out of the blue with no changes to code. It’s erroring for everyone with an openpilot fork right now, even the original repo is having this problem. If anyone has any ideas, that’d be awesome. Thanks

#2

Please review any change to your dependencies.

https://docs.travis-ci.com/user/common-build-problems/#my-tests-broke-but-were-working-yesterday

#3

Hi there, thanks for the reply. We are installing a set version of each package using pip. Correct me if I’m wrong, but shouldn’t it always install the same packages? That’s why I’m not sure what’s causing the issue

#4

It depends. Sometimes your specifications are not specific enough and you get newer versions that may introduce errors.

So, as I said, please review your dependencies.

#6

I’ve tried reviewing the dependencies, however after adding a command to update pip, I’m getting: The command '/bin/sh -c pip install --upgrade pip' returned a non-zero code: 2

I think the error is from a network error. Same urllib3 error, Not from any dependency besides pip.

I’ve tried installing the debian requests package instead of from pip. I’ve done a few searches online and it seems everyone with this error says fixing their network connection fixed it, or switching to IPv4 instead of IPv6, or setting their DNS values to Google’s. Though I’m not sure how to configure that with Travis. Any ideas? Thanks

Also there hasn’t been a change with the python-pip or requests packages I’m using. I’m using an older version of urllib3 that was confirmed working as well.

I was able to get one commit out of 20 or so to complete the build successfully: https://github.com/ShaneSmiskol/openpilot/runs/120120288

However, immediately after it reverts to failing because of a network issue. Definitely not dependency-related

Edit: Great work to whoever solved it! Working perfectly again. I had a feeling it was a travis issue