Python 3.8 binaries intermittently fail on curl

Downloading archive: https://storage.googleapis.com/travis-ci-language-archives/python/binaries/ubuntu/16.04/x86_64/python-3.8.tar.bz2
0.49s$ curl -sSf --retry 5 -o python-3.8.tar.bz2 ${archive_url}
curl failed

Intermittently on builds using python 3.8 as the target language, curl will fail to pull this tarball to the workspace; replaying appears to resolve the issue which strikes me as odd.

It’s not entirely clear to me what circumstances cause this to fail, but from the cryptic logs it doesn’t appear any retry occurs (or retry logs aren’t served to us as users?). I have seen this happen once every 2-3 days or so. Given retrying the job appears to resolve, It’s not clear to me what exactly the issue is, whether it’s on a fresh workspace (eg new worker container?), not authorized to pull from that travis-ci-language-archives bucket, or so on. Have not yet seen this with any other language being pulled down into a 16.04 workspace. I’d provide more logs, but there’s not much more to show beyond curl failing to grab that file.

Harder to say without the build instruction file, but I would recommend (if this what you have in your build instruction file) is not to use travis_retry as cURL already has a --retry argument, so maybe in your .travis.yml file, you could give this a shot:

CURL="curl -sSf --retry 9 --retry-delay 9"

This is just something that could work, I will look into this further and pass it on to our support team if this continues to be a problem.

-Montana (Travis CI Staff)

I don’t think that would work, unfortunately. User-customizations such as this won’t kick in until the language runtime is set up and ready to go. We would have to have a different mechanism to diagnose the problem.

How frequent (in percentage) are the failures?

2 Likes

@Montana - @BanzaiMan is correct, this is travis’ out of box language runtime configuration on the .travis.yml at the very beginning of a job, not personalized in any way:

language: python
python: '3.8'

@BanzaiMan Once every couple of days, frequent enough to be annoyed by a build break that’s out of my control and to make a ticket.

As a control point - I’ve bumped down to 3.7 since my last message and have not experienced any issues with pulling down language into the workspace.

I’ve never understood why anyone would want to use curl -s. It’s doing yourself a disservice, you can’t see what’s wrong if when it fails.