Iulian7

Iulian7

Hi guys,

I have an Erlang dependency which does not compile with mix but compiles fine with rebar3. The output when compiling with DEBUG=1 is:

...
===> Building escript...
===> Creating escript file /Users/iulian/elixir/riak/deps/cuttlefish/_build/default/bin/cuttlefish
===> processing <<"cuttlefish">>
===> new deps of <<"cuttlefish">> found to be []
===> processing <<"getopt">>
===> Uncaught error in rebar_core. Run with DEBUG=1 to see stacktrace or consult rebar3.crashdump
===> Uncaught error: {badmatch,error}
===> Stack trace to the error location:
[{rebar_prv_escriptize,find_deps_of_deps,3,
                       [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_escriptize.erl"},
                        {line,246}]},
 {rebar_prv_escriptize,find_deps,2,
                       [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_escriptize.erl"},
                        {line,240}]},
 {rebar_prv_escriptize,escriptize,2,
                       [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_escriptize.erl"},
                        {line,104}]},
 {rebar_prv_escriptize,do,1,
                       [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_escriptize.erl"},
                        {line,80}]},
 {rebar_core,do,2,
             [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_core.erl"},
              {line,153}]},
 {rebar_hooks,run_provider_hooks_,6,
              [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_hooks.erl"},
               {line,49}]},
 {rebar_hooks,run_all_hooks,6,
              [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_hooks.erl"},
               {line,16}]},
 {rebar_prv_compile,compile,3,
                    [{file,"/home/tristan/Devel/rebar3/_build/default/lib/rebar/src/rebar_prv_compile.erl"},
                     {line,129}]}]
...

I am running Elixir 1.4.5, Erlang/OTP 20 on macOS Sierra. I also made sure the rebar3 mix uses is the correct version using mix local.rebar rebar3. The rebar3 version is 3.4.2.

Any help would be much appreciated!

Showing Posts 1 to 10

NobbZ

NobbZ

Getopt uses legacy rebar, try setting manager rebar for it.

Iulian7

Iulian7 OP

I set {:getopt, "~> 0.8.2", manager: :rebar3, override: true}, however I still get the same error.

NobbZ

NobbZ

I said rebar, not rebar3.

Iulian7

Iulian7 OP

Unfortunately same situation. I also made sure to update mix local.rebar rebar.

$ rebar --version
rebar 2.6.4 19 20161104_120312 No VCS info available.

Again this only happens if I compile with mix. If I compile the dependency with rebar3 it compiles.

EDIT: I now have {:getopt, "~> 0.8.2", manager: :rebar, override: true}

Iulian7

Iulian7 OP

If it helps, the dependency is riak_core_ng | Hex which in turn depends on cuttlefish | Hex (the culprit in this discussion).

georosz

georosz

I had similar, but not the same issue before, also I use linux not OSX
I managed to solve it by reinstalling erlang and elixir.

https://forum.elixirforum.com/t/cannot-compile-unicode-util-compat/6724

Iulian7

Iulian7 OP

Well I also tried that but it didn’t work. It’s very frustrating now. If I compile getopt with mix using mix deps.compile getopt it works. If I compile them individually it works except for cuttlefish which gives that error. This is so strange.

I again tried to compile the whole thing with rebar3 and it works fine. I even compiled with ~/.mix/rebar3 for sanity check to make sure mix is not using some strange version.

peerreynders

peerreynders

Ok - grasping at straws here:

On Digital Ocean/Ubuntu there seems to be an emerging pattern that compiling certain applications with rebar3 through mix can run into trouble in a memory constrained environment (512 MB RAM).

https://github.com/elixir-lang/elixir/issues/3857#issuecomment-220746100

Now, I haven’t seen anything comparable for OS X - but it may be worth firing up Activity Monitor and watching the “Memory” tab to see what is happening to the physical memory consumption during compilation:

  • Is physical memory being completely consumed?
  • Is a swap file being created to cover the short fall?
Iulian7

Iulian7 OP

Interesting. I observed the memory usage. It doesn’t really go up and there is no swapping. It is worth noting I have 16GB of RAM. The usage is constant at about 8GB.

This is also followed in this issue: Problems compiling (warnings_as_errors) · Issue #23 · Kyorai/riak_core · GitHub.

peerreynders

peerreynders

Well, that rule’s that out.

Though I wonder if there is a way to see exactly what information is passing from mix to rebar3 - in case rebar3 is simply choking on some “bad (truncated?) configuration information”.

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
ryanwinchester
apply_graft/2 doesn’t rewrite an add_many sub-workflow’s deps on an add step. Grafted jobs cancel with “upstream job was deleted” Version...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge &amp; Solve. They are GUI (Emerge) and State management (S...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews