tomielee
** (RuntimeError) found error while checking types for Jason.Decoder.float_decode_function/1: in Docker
Hi!
I’m running a umbrella project in a docker container. In the container in a submodule I’m running mix deps.get I get an error
==> jason
Compiling 10 files (.ex)
** (EXIT from #PID<0.95.0>) an exception was raised:
** (RuntimeError) found error while checking types for Jason.Decoder.float_decode_function/1:
** (ArgumentError) could not call Module.put_attribute/3 because the module Jason.Decoder is already compiled
The exception happened while checking this code:
defp float_decode_function(%{floats: :decimals}) do
fn string, token, skip ->
try do
Decimal.new(string)
rescue
_ in [Decimal.Error] -> token_error(token, skip)
end
end
end
Please report this bug at: https://github.com/elixir-lang/elixir/issues
(elixir 1.17.0) lib/module.ex:2365: Module.assert_not_readonly!/2
(elixir 1.17.0) lib/module.ex:2046: Module.__put_attribute__/5
(decimal 2.3.0) Decimal.Error.__info__/1
(elixir 1.17.0) lib/module/types/of.ex:182: Module.Types.Of.struct/6
(elixir 1.17.0) lib/module/types/helpers.ex:128: Module.Types.Helpers.do_map_reduce_ok/3
(elixir 1.17.0) lib/module/types/expr.ex:379: Module.Types.Expr.of_rescue/8
(elixir 1.17.0) lib/module/types/helpers.ex:108: Module.Types.Helpers.do_reduce_ok/3
(elixir 1.17.0) lib/module/types/expr.ex:231: Module.Types.Expr.of_expr/3
Any ideas how to approach this?
Most Liked
D4no0
What is the version of elixir/erlang used?
tomielee
So far tracked some corners:
-
On a OS X, with M2 - had to define the platform when building the image and running the container. Shouldn’t be causing more troubles.
-
Elixir and Erlang versions.
elixir -vin the container @D4no0
Erlang/OTP 27 [erts-15.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns] Elixir 1.17.0 (compiled with Erlang/OTP 27)
tomielee
Updated to run with elixir 1.18.1
with nuked _build, deps and mix.lock running mix deps.get in the submodule in the Docker container first get the jason error
Error while loading project :jason at /my_umbrella_project/my_submodule/deps/jason
** (ArgumentError) could not call Module.put_attribute/3 because the module Nerves.MixProject is already compiled
(elixir 1.18.1) lib/module.ex:2398: Module.assert_not_readonly!/2
(elixir 1.18.1) lib/module.ex:2079: Module.__put_attribute__/5 /my_umbrella_project/my_submodule/deps/jason/mix.exs:2: (module)
But running mix deps.get a second time it builds perfectly fine.







