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

libtinfo.so.5 issue with using buildpack #204

Open
callumcieciala opened this issue Jun 24, 2021 · 17 comments
Open

libtinfo.so.5 issue with using buildpack #204

callumcieciala opened this issue Jun 24, 2021 · 17 comments

Comments

@callumcieciala
Copy link

Hey,

Sorry if this is the wrong place.

All signs point to this buildpack for deploying elixir to cloudfoundry (KubecCF).

When using the buildpack I get staging failed:

[STG/0] OUT -----> Checking Erlang and Elixir versions
[STG/0] OUT cat: /home/vcap/app: Is a directory
[STG/0] OUT cat: /home/vcap/bin: Is a directory
[STG/0] OUT Will use the following versions:
[STG/0] OUT * Stack
[STG/0] OUT * Erlang 21.2.5
[STG/0] OUT * Elixir v1.10.2
[STG/0] OUT -----> Stack changed, will rebuild
[STG/0] OUT -----> Cleaning all cache to force rebuilds
[STG/0] OUT -----> Fetching Erlang 21.2.5 from https://s3.amazonaws.com/heroku-buildpack-elixir/erlang/cedar-14/OTP-21.2.5.tar.gz
[STG/0] OUT -----> Installing Erlang 21.2.5 (changed)
[STG/0] OUT
[STG/0] OUT -----> Fetching Elixir v1.10.2 for OTP 21 from https://repo.hex.pm/builds/elixir/v1.10.2-otp-21.zip
[STG/0] OUT -----> Installing Elixir v1.10.2 (changed)
[STG/0] OUT -----> Installing Hex
[STG/0] OUT /app/.platform_tools/erlang/erts-10.2.3/bin/beam.smp: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
[STG/0] OUT 2021/06/24 15:27:39 compile script failed exit status 127
[STG/0] OUT 2021/06/24 15:27:39 failed to create droplet: BuildpackCompileFailed: exit status 223 - internal error: failed to compile droplet: exit status 127

Has anyone seen anything similar? or has any ideas?, this issue is driving me insane.

Thanks!

@callumcieciala
Copy link
Author

I tried a branch from April just as a what if and I got;

-----> Checking Erlang and Elixir versions
Will use the following versions:

  • Stack
  • Erlang 21.2.5
  • Elixir 1.10.2
    Will export the following config vars:
  • Config vars DATABASE_URL
  • MIX_ENV=prod
    -----> Stack changed, will rebuild
    -----> Cleaning all cache to force rebuilds
    -----> Fetching Erlang 21.2.5
    -----> Installing Erlang 21.2.5 (changed)

-----> Fetching Elixir v1.10.2
-----> Installing Elixir v1.10.2 (changed)
[/tmp/buildpack-cache/final/elixir-v1.10.2.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of /tmp/buildpack-cache/final/elixir-v1.10.2.zip or
/tmp/buildpack-cache/final/elixir-v1.10.2.zip.zip, and cannot find /tmp/buildpack-cache/final/elixir-v1.10.2.zip.ZIP, period.
chmod: cannot access '/tmp/app-bits340683100/.platform_tools/elixir/bin/*': No such file or directory
-----> Installing Hex
-----> Installing rebar
/var/lib/buildpacks/8b9035807842a4e4dbe009f3f1478127/lib/elixir_funcs.sh: line 87: mix: command not found
/var/lib/buildpacks/8b9035807842a4e4dbe009f3f1478127/lib/elixir_funcs.sh: line 92: mix: command not found
-----> Fetching app dependencies with mix
/var/lib/buildpacks/8b9035807842a4e4dbe009f3f1478127/lib/app_funcs.sh: line 41: mix: command not found
2021/06/24 16:13:39 compile script failed exit status 1
2021/06/24 16:13:39 failed to create droplet: BuildpackCompileFailed: exit status 223 - internal error: failed to compile droplet: exit status 1
Error staging application: Staging error: failed to create droplet: BuildpackCompileFailed: exit status 223 - internal error: failed to compile droplet: exit status 1
FAILED

@NduatiK
Copy link

NduatiK commented Jul 28, 2021

@callumcieciala, did you figure this out?

@callumcieciala
Copy link
Author

@NduatiK nope, I scoured the internet and after chatting to a few people in elixir + cloudfoundry slack channels. Nobody had any ideas with this specific issue, I've moved on to alternative solutions.

@NduatiK
Copy link

NduatiK commented Jul 28, 2021

Thanks I've been trying to deploy elixir on Digital Ocean using Dokku but no luck either. I'll keep at it and give up if a few hours go by.

@ArthurFleischman
Copy link

i still have this problem in sep 2021, may be some internals or local .so files missing at heroku's servers.

@dustinfarris
Copy link

Also seeing this on a recent production deploy on Gigalixir.

@NduatiK
Copy link

NduatiK commented Oct 12, 2021

I think this is related to the Ubuntu version. I had success with Ubuntu 18. I can't recall how I set that for Heroku or Gigalixir. Probably an .env file.

I check it out and report back


Edit:

On Heroku, I added a .env file to my project root that specified my target stack.

# .env
STACK="heroku-18"

@joshcrews
Copy link

I expect Ubuntu version is the issue. I just tried upgrading heroku to heroku-22 stack and got this

remote: -----> Checking Erlang and Elixir versions
remote:        Will use the following versions:
remote:        * Stack heroku-22
remote:        * Erlang 22.1.8
remote:        * Elixir v1.13.1 
remote: -----> Stack changed, will rebuild
remote: -----> Fetching Erlang 22.1.8 from https://s3.amazonaws.com/heroku-buildpack-elixir/erlang/cedar-14/OTP-22.1.8.tar.gz
remote: -----> Installing Erlang 22.1.8 (changed)
remote: 
remote: -----> Fetching Elixir v1.13.1 for OTP 22 from https://repo.hex.pm/builds/elixir/v1.13.1-otp-22.zip
remote: -----> Installing Elixir v1.13.1 (changed)
remote: -----> Installing Hex
remote: /app/.platform_tools/erlang/erts-10.5.6/bin/beam.smp: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
remote:  !     Push rejected, failed to compile Elixir app.

I don't know the solution

@kasvith
Copy link

kasvith commented Aug 4, 2022

Having the same issue with buildpack

@kasvith
Copy link

kasvith commented Aug 4, 2022

I used container stack with heroku using a Dockerfile instead

@pbjTEG
Copy link

pbjTEG commented Sep 6, 2022

I inherited an Erlang app (I don't speak Erlang) and solved this problem by updating elixir_buildpack.config:

erlang_version=24.2
elixir_version=1.14.0

and mix.exs:

elixir: "~> 1.14.0",

Luckily, the app still builds. Wish me luck on the push from staging to live.

@martasd
Copy link

martasd commented Jan 17, 2023

@pbjTEG How did you manage to make this work? When I try this Erlang version, I get

Sorry, Erlang 24.2 isn't supported yet. For a list of supported versions, please see https://github.com/HashNuke/heroku-buildpack-elixir#version-support

@martasd
Copy link

martasd commented Jan 17, 2023

As @joshcrews, this relates to the Heroku stack version. When I downgrade to heroku-20 stack, the compilation issue does not occur. Thus the workaround for now is to use the previous stack:

$ heroku apps:stacks:set heroku-20

@pbjTEG
Copy link

pbjTEG commented Jan 17, 2023

@pbjTEG How did you manage to make this work? When I try this Erlang version, I get

Sorry, Erlang 24.2 isn't supported yet. For a list of supported versions, please see https://github.com/HashNuke/heroku-buildpack-elixir#version-support

I probably should have mentioned that I'm using an Elixir buildpack, https://github.com/HashNuke/heroku-buildpack-elixir

You can get more information about it here: https://elements.heroku.com/buildpacks/heroku/heroku-buildpack-erlang

@ricardohsd
Copy link

Setting the heroku stack:set heroku-20 worked for me

@robdimsdale
Copy link

I think this is happening because elixir is looking for libtinfo5, which is present on the cflinuxfs3/Bionic/18.04 stack (i.e. here). But, on the cflinuxfs4/Jammy/22.04 stack, we see that this library was upgraded to libtinfo6 (here).

My assumption is that this is because the buildpack provides pre-built binaries, which are pre-compiled for cflinuxfs3/Bionic/18.04, and hence aren't compatible with cflinuxfs4/Jammy/22.04.

I think this buildpack needs to update its dependencies to work with cflinuxfs4.

The other difference that might be relevant is that cflinuxfs4 does not provide the dev package, but I don't think that's the issue based on the error message above

@robdimsdale
Copy link

Also I assume that the heroku-20 stack is based on Ubuntu 20.04/Focal, which has a lot of similar libraries as Bionic/18.04, which would explain why using that stack works.

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

No branches or pull requests

10 participants