sezaru
Release build failing with undefined function erlang:get_stacktrace/0 after OTP 24 update
I have a Docker image that I use to compile my releases for deployment, I recently updated it to use OTP 24 and the latest Elixir version (1.12.0).
After making that change, now my release builds always fail with the following error:
$ MIX_ENV=prod mix release
...
===> Fetching rebar3_hex v6.11.4
===> Downloaded package, caching at /home/sezdocs/.cache/rebar3/hex/hexpm/packages/rebar3_hex-6.11.4.tar
escript: exception error: undefined function erlang:get_stacktrace/0
in function rebar3:main/1 (/rebar3/src/rebar3.erl, line 72)
in call from escript:run/2 (escript.erl, line 750)
in call from escript:start/1 (escript.erl, line 277)
in call from init:start_em/1
in call from init:do_boot/3
** (Mix) Could not compile dependency :sleeplocks, "/home/sezdocs/.mix/rebar3 bare compile --paths /home/sezdocs/project/endpoints/_build/prod/lib/*/ebin" command failed. You can recompile this dependency with "mix deps.compile sleeplocks", update it with "mix deps.update sleeplocks" or clean it with "mix deps.clean sleeplocks"
Does anyone knows why is this happening and how to solve it?
Also, I don’t know if this helps, but here is my Dockerfile:
FROM ubuntu:20.04 AS build
ARG USER=builder
ARG UID=1000
ARG GID=1000
ARG PWD=builder
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https ca-certificates gnupg software-properties-common wget
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2> /dev/null | gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg > /dev/null
RUN apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main'
RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
RUN apt-add-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-12 main'
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y apt-utils
RUN wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
RUN dpkg -i erlang-solutions_2.0_all.deb
RUN rm erlang-solutions_2.0_all.deb
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y esl-erlang
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y elixir
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y clang-12 capnproto
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y git
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y cmake
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y curl
RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang-12 10
RUN update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-12 10
RUN useradd -m $USER --uid $UID
RUN echo "${USER}:${PWD}" | chpasswd
USER ${UID}:${GID}
ENV LANG=C.UTF-8
ENV TERM=xterm-256color
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
RUN echo 'source $HOME/.cargo/env' >> ~/.bashrc
RUN echo 'PS1="(builder) $PS1"' >> ~/.bashrc
RUN mix local.hex --force
RUN mix local.rebar --force
WORKDIR /home/${USER}/project
CMD ["/bin/bash"]
I build it with:
docker build --build-arg USER=$USER \
--build-arg UID=$(id -u) \
--build-arg GID=$(id -g) \
--no-cache \
-t tip-off/builder:v1 .
and run it with:
docker run --detach-keys='ctrl-e,e' -it -v$(pwd):/home/$USER/project --rm tip-off/builder:v1
Marked As Solved
sezaru
Ok, I was able to fix this changing my HEX_MIRROR for some reason.
What I did was:
HEX_MIRROR=https://cdn.jsdelivr.net/hex mix local.hex
HEX_MIRROR=https://cdn.jsdelivr.net/hex mix local.rebar
1
Also Liked
sezaru
Just an update, in the end the error was a regression in hex servers, José Valim already fixed it Compilation fails with undefined function erlang:get_stacktrace/0 · Issue #11047 · elixir-lang/elixir · GitHub 
4
Popular in Questions
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
Hi,
I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list....
New
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
Hi there, I'm working through my first release with elixir/phoenix. I've built a release with distillery and found that it crashes when I...
New
I would like to know what is the best IDE for elixir development?
New
Hi,
is there any work on GUI with Elixir, that is similar to Electron/Javascript? My idea is to bundle Phoenix and BEAM into a single se...
New
Student & New to elixir. Nice language.
I want to convert a english character, e.g. “a”, which is stored in a variable, to it’s asci...
New
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
Hi,
I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
Other popular topics
Update:
How to use the Blogs & Podcasts section
You can post links to your blog posts or podcasts either in one of the Official Blog...
New
Hi everyone!
I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
Phoenix 1.4.0 released
Phoenix 1.4 is out! This release ships with exciting new features, most notably
with HTTP2 support, improved deve...
New
I would like to know that is there any online source for learning Phoenix Framework for building E-Commerce Store? Any advantage on build...
New
Credo is smart enough to check for (something like) this:
assert length(the_list) == 0
with this response:
Checking if an enum is empt...
New
Hi there,
I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 record...
New
What is most correct way to open, read and parse JSON file with poison?
For example if we have example.json file in root of some projec...
New
Hi,
I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New







