Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kiex cannot find any known version #3269

Closed
BanzaiMan opened this issue Feb 23, 2015 · 15 comments · Fixed by travis-ci/travis-build#461
Closed

kiex cannot find any known version #3269

BanzaiMan opened this issue Feb 23, 2015 · 15 comments · Fixed by travis-ci/travis-build#461

Comments

@BanzaiMan
Copy link
Contributor

https://staging.travis-ci.org/BanzaiMan/travis_staging_test/builds/428572#L90

Not quite sure why, but kiex cannot find known Elixir releases. As a result (and because there is a problem with the build script), non-default version of Elixir cannot be used at the moment.

@danielberkompas
Copy link

@BanzaiMan My Elixir builds are still using the default version of Elixir. See this sample build: https://travis-ci.org/danielberkompas/ex_twilio/jobs/56160581#L81

job__5_1_-danielberkompas_ex_twilio-_travis_ci

For some reason, it looks like kiex is unable to install the specified version.

@danielberkompas
Copy link

I've also checked what releases kiex on Travis knows about, and it looks like it doesn't know about any:
job__37_1_-danielberkompas_ex_twilio-_travis_ci

In contrast, my local shell returns the following versions when I run kiex list known:

1__dberkom_bastiat____dev_dialyxir__zsh_

Is Travis using an outdated version of kiex?

@BanzaiMan
Copy link
Contributor Author

@danielberkompas Looks like a temporary issue with connectivity with GitHub. https://travis-ci.org/danielberkompas/ex_twilio/jobs/57044720#L87 shows that it works.

@BanzaiMan
Copy link
Contributor Author

We can either retry, or fall back to 1.0.3.

@BanzaiMan
Copy link
Contributor Author

With travis-ci/travis-build@bbead30, we will retry up to 3 times. If it still fails after 3 times, then we have a real problem.

@DevL
Copy link

DevL commented Apr 15, 2015

Looks like this issue has resurfaced. I've got a string of builds that fail miserably (builds 54-74): https://travis-ci.org/DevL/plug_require_header/builds/58594973

@BanzaiMan
Copy link
Contributor Author

Sorry about that. We are looking into this issue again.

@BanzaiMan BanzaiMan reopened this Apr 15, 2015
@roidrage
Copy link
Contributor

Could this be because of API rate limiting? Everything from the container setup is going to the GitHub API with the same IP

Would be great to coerce some output from kiex from the curl command.

I've been trying to reproduce this as well: https://travis-ci.org/roidrage/Radpath

@BanzaiMan
Copy link
Contributor Author

@roidrage I've contacted GitHub support for some insight. 😄

@BanzaiMan
Copy link
Contributor Author

I'll drop some further debugging stuff to our fork of kiex, then inject it with travis-build, so that we can get more information on the reasons for the failure. Stay tuned.

@BanzaiMan
Copy link
Contributor Author

I was able to do it without hacking travis-build: https://travis-ci.org/BanzaiMan/travis_production_test/builds/58769492#L4698-L4717

At least, for this instance, we are getting 403 from GitHub. I'll relay this information and see if we can resolve it.

@BanzaiMan
Copy link
Contributor Author

It's the rate limit.

@DevL
Copy link

DevL commented Apr 19, 2015

Thanks for looking into this, it's much appreciated!

@BanzaiMan
Copy link
Contributor Author

Another approach would be to package Elixir or to find a trust-worthy Elixir package. https://travis-ci.org/phoenixframework/phoenix/builds/65131002#L91 shows such a possibility.

While it is conceivable that a build on Travis CI needs to switch Elixir version during the build, but I suspect that will be an exception. Having a consistently usable Elixir environment is probably more desirable.

BanzaiMan added a commit to travis-ci/travis-build that referenced this issue Jun 3, 2015
Resolves travis-ci/travis-ci#3269

If the desired Elixir version is not installed already,
pull down package from s3.hex.pm, and set up Elixir runtime
as kiex expects.

'kiex list' does not make network calls to GitHub, so that
we should not reach GitHub's API rate limit.
@BanzaiMan
Copy link
Contributor Author

So, the general strategy is to install Elixir from the binary package from s3.hex.pm if and only if the version is not pre-installed (which, at the moment, means anything other than 1.0.2).

I am thinking that the presence of binary packages add very little additional burden on image provisioning, so we'll have most (if not all) of 1.0.x onward preinstalled starting with the next update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants