tomekowal

tomekowal

Error on incremental compilation in MIX_ENV=test with Elixir 1.19

Hi!

I am trying to pinpoint why my project has issue on incremental compilation when running tests in elixir 1.19.0-rc.0-otp-26

I am running an umbrella project. When I change a file, it triggers recompilation in a couple of apps across umbrella.

I am getting errors like this:

mix deps.compile running across 4 OS processes
4> ==> app1
4> Compiling 1 file (.ex)
4> Generated app1 app
1> ==> app2
1> Compiling 1 file (.ex)
1> Generated app2 app
3> ==> app3
3> Compiling 1 file (.ex)
1> ==> app4
1> Compiling 8 files (.ex)
3> Generated app3 app
1> Generated app4 app
1> ==> app5
1> Compiling 102 files (.ex)
1> Generated app5 app
1> ==> app6
1> Compiling 6 files (.ex)
1> Generated app6 app
** (EXIT from #PID<0.98.0>) an exception was raised:
    ** (File.Error) could not write to file "/Users/user1/project/_build/test/consolidated/Elixir.Plug.Exception.beam": no such file or directory
        (elixir 1.19.0-rc.0) lib/file.ex:1401: File.write!/3
        (mix 1.19.0-rc.0) lib/mix/compilers/protocol.ex:159: Mix.Compilers.Protocol.consolidate_each/4
        (elixir 1.19.0-rc.0) lib/task/supervised.ex:105: Task.Supervised.invoke_mfa/2
        (elixir 1.19.0-rc.0) lib/task/supervised.ex:40: Task.Supervised.reply/4


20:05:54.679 [error] Task #PID<0.902.0> started from #PID<0.98.0> terminating
** (File.Error) could not write to file "/Users/tomaszkowal/bluecodecom/scheme-services-19/_build/test/consolidated/Elixir.Plug.Exception.beam": no such file or directory
    (elixir 1.19.0-rc.0) lib/file.ex:1401: File.write!/3
    (mix 1.19.0-rc.0) lib/mix/compilers/protocol.ex:159: Mix.Compilers.Protocol.consolidate_each/4
    (elixir 1.19.0-rc.0) lib/task/supervised.ex:105: Task.Supervised.invoke_mfa/2
    (elixir 1.19.0-rc.0) lib/task/supervised.ex:40: Task.Supervised.reply/4
Function: #Function<8.102399383/0 in Mix.Compilers.Protocol.consolidate/4>
    Args: []

  ...

and then a long list of similarly looking errors for all protocols: Collectable, Phoenix.HTML.Safe and so on and so forth.

This never happened on Elixir 1.18.x or any other previous versions.

I am somewhat sure it is connected to the parallel compilation. Other facts:

  • I doesn’t happen always
  • it only happens on incremental compilation
  • it seems to be pure chance if introducing a new line triggers it or compiles fine
  • it only runs in MIX_ENV=test
  • when it compiles, subsequent invocation of mix test work fine

I wasn’t able to reproduce it outside of our production app, so I don’t have a minimal reproduction example yet that I could share.

Did anybody see anything like that?

Most Liked

Where Next?

Popular in Troubleshooting Top

alexlanderzander
Hello everyone, I’m working on a blockchain project in Elixir and I’m implementing some of the core cryptography in a Rust NIF using Rus...
New
chocolatedonut
Besides (over)logging every code-path leading to Repo.insert_all, is it possible to make Postgrex and/or ecto_sql log the exact, failing ...
New
Ferenc
I have installed it on Phoenix 1.8.1 (without authentication or other packages and got 2 problems). I had to set up things manually the ...
New
mooreryan
In a project I’m working on, I cannot get tests with breakpoints or pry working. Here is an example in a new mix project. Create a fresh...
New
harmon25
Hi All, I am bumping into a weird issue with an umbrella app while upgrading to latest Elixir 1.19.x + otp28. A couple apps in the umbr...
New
michaelterryio
Hey, I’ve got a project with several path dependencies. Some are phoenix apps, but this likely isn’t relevant. I don’t fully understand...
New
onelastdance
Hey there, Using the install script method recommended here on Ubuntu 24.04: And then running the following commands: iex&gt; :obser...
New
klo
Is there any way to go from a float 1.0 to 1.00 while retaining the float() type?
New
rayex
Hi, I am using the following versions: Erlang/OTP 27 [erts-15.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns] El...
New
apoorv-2204
The Issue of Enums in Elixir Elixir doesn’t have a native enum construct, so we usually rely on atoms, strings, or macros to represent na...
New

Other popular topics Top

peerreynders
Manning 2016 Halloween weekend sale via Deal of the Day Friday, October 28 - Half off all MEAPs - code WM102816LT Saturday, October 29 ...
326 29600 154
New
bsollish-terakeet
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
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
fireproofsocks
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
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
vac
Hi, I'm quite new in Elixir and I'm trying to format a string to a PEM format. I have the certificate value like MIIDBTCCAe2...... and ...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New

We're in Beta

About us Mission Statement