Elixir v1.10.0 released

Which commit is that exactly and what operating system do you use? What is your Erlang version?

root@localhost elixir-1.10.0]# erl --version

**Erlang/OTP 22** [erts-10.4] [source] [64-bit] [smp:6:6] [ds:6:6:10] [async-threads:1] [hipe]

Eshell V10.4 (abort with ^G)

1>
[root@localhost elixir-1.10.0]# cat /etc/centos-release

**CentOS Linux release 7.6.1810 (Core)** 

[root@localhost elixir-1.10.0]#

I checked the tag v1.10.0 (sha 5bd7a9086) and branch master (sha c31958aa1 at the time of my last update).

Both were able to built on my system. Can you please verify that you are building one of these, or are you trying to build from a different commit? If yes, which one?

hello , I download from this link https://github.com/elixir-lang/elixir/archive/v1.10.0.tar.gz

I think the repo has some issues

[root@kyu-renu-stdportal1 elixir-1.10.1]# git clone https://github.com/elixir-lang/elixir.git

Cloning into 'elixir'...

remote: Enumerating objects: 97, done.

remote: Counting objects: 100% (97/97), done.

remote: Compressing objects: 100% (74/74), done.

error: RPC failed; result=18, HTTP code = 200 MiB | 96.00 KiB/s

fatal: The remote end hung up unexpectedly

fatal: early EOF

fatal: index-pack failed

[root@kyu-renu-stdportal1 elixir-1.10.1]#

It seems like GitHub error, not anything that Elixir Core Team can do.

Guys , I have tried again to compile elixir-1.10

[root@kyu-renu-stdportal1 elixir]# make clean test
rm -rf ebin
rm -rf lib/*/ebin
rm -rf lib/elixir/src/elixir_parser.erl
make[1]: Entering directory `/usr/local/erlang_22/elixir-1.10.1/elixir'
rm -rf lib/*/_build/
rm -rf lib/*/tmp/
rm -rf lib/elixir/test/ebin/
rm -rf lib/mix/test/fixtures/deps_on_git_repo/
rm -rf lib/mix/test/fixtures/git_rebar/
rm -rf lib/mix/test/fixtures/git_repo/
rm -rf lib/mix/test/fixtures/git_sparse_repo/
rm -f erl_crash.dump
make[2]: Entering directory `/usr/local/erlang_22/elixir-1.10.1/elixir'
rm -f man/elixir.1
rm -f man/elixir.1.bak
rm -f man/iex.1
rm -f man/iex.1.bak
make[2]: Leaving directory `/usr/local/erlang_22/elixir-1.10.1/elixir'
make[1]: Leaving directory `/usr/local/erlang_22/elixir-1.10.1/elixir'
Recompile: src/elixir_utils
Recompile: src/elixir_tokenizer
Recompile: src/elixir_sup
Recompile: src/elixir_rewrite
Recompile: src/elixir_quote
Recompile: src/elixir_parser
Recompile: src/elixir_overridable
Recompile: src/elixir_module
Recompile: src/elixir_map
Recompile: src/elixir_locals
Recompile: src/elixir_lexical
Recompile: src/elixir_interpolation
Recompile: src/elixir_import
Recompile: src/elixir_fn
Recompile: src/elixir_expand
Recompile: src/elixir_errors
Recompile: src/elixir_erl_var
Recompile: src/elixir_erl_try
Recompile: src/elixir_erl_pass
Recompile: src/elixir_erl_for
Recompile: src/elixir_erl_compiler
Recompile: src/elixir_erl_clauses
Recompile: src/elixir_erl
Recompile: src/elixir_env
Recompile: src/elixir_dispatch
Recompile: src/elixir_def
Recompile: src/elixir_config
Recompile: src/elixir_compiler
Recompile: src/elixir_code_server
Recompile: src/elixir_clauses
Recompile: src/elixir_bootstrap
Recompile: src/elixir_bitstring
Recompile: src/elixir_aliases
Recompile: src/elixir
Generated elixir app
==> bootstrap (compile)
error: undef
stacktrace: [{elixir_aliases,expand,
                 [{'__aliases__',[{line,938}],['Process']},[],[],nil],
                 []},
             {'Elixir.Macro',do_expand_once,2,
                 [{file,"lib/macro.ex"},{line,1217}]},
             {'Elixir.Macro',expand_until,2,
                 [{file,"lib/macro.ex"},{line,1379}]},
             {'Elixir.Kernel.Typespec',typespec,4,
                 [{file,"lib/kernel/typespec.ex"},{line,726}]},
             {'Elixir.Kernel.Typespec',typespec,4,
                 [{file,"lib/kernel/typespec.ex"},{line,654}]},
             {lists,mapfoldl,3,[{file,"lists.erl"},{line,1354}]},
             {'Elixir.Kernel.Typespec',fn_args,5,
                 [{file,"lib/kernel/typespec.ex"},{line,942}]},
             {'Elixir.Kernel.Typespec',fn_args,6,
                 [{file,"lib/kernel/typespec.ex"},{line,928}]}]
make: *** [lib/elixir/ebin/Elixir.Kernel.beam] Error 1

I just updated my app to 1.10.0-slim docker image and its crashing at start with multiple restarts it works at times. Was working fine on 1.9.4-slim. are there any breaking changes in 1.10.0 below is the CRASH Report.

|#033[0m #033[0m[os_mon] memory supervisor port (memsup): Erlang has closed
|#033[0m [os_mon] cpu supervisor port (cpu_sup): Erlang has closed
|#033[0m =SUPERVISOR REPORT==== 4-Feb-2020::07:17:29.772813 ===
|#033[0m     supervisor: {local,'Elixir.UltronexApp'}
|#033[0m     errorContext: start_error
|#033[0m     reason: {'EXIT',
|#033[0m                 {shutdown,
|#033[0m                     {gen_statem,call,[<0.1426.0>,{recv,0,5000},infinity]}}}
|#033[0m     offender: [{pid,undefined},
|#033[0m                {id,'Elixir.Slack.Bot'},
|#033[0m                {mfargs,
|#033[0m                    {'Elixir.Slack.Bot',start_link,
|#033[0m                        ['Elixir.Ultronex.BotX',[],
|#033[0m                         <<"xoxb-2153744344-802832712145-FSAsDPEi8Qarzui3S6pPOkcc">>,
|#033[0m                         #{name => ultronex_bot}]}},
|#033[0m                {restart_type,permanent},
|#033[0m                {shutdown,5000},
|#033[0m                {child_type,worker}]
|#033[0m =CRASH REPORT==== 4-Feb-2020::07:17:29.774383 ===
|#033[0m   crasher:
|#033[0m     initial call: application_master:init/4
|#033[0m     pid: <0.1416.0>
|#033[0m     registered_name: []
|#033[0m     exception exit: {{shutdown,
|#033[0m                       {failed_to_start_child,'Elixir.Slack.Bot',
|#033[0m                        {'EXIT',
|#033[0m                         {shutdown,
|#033[0m                          {gen_statem,call,
|#033[0m                           [<0.1426.0>,{recv,0,5000},infinity]}}}}},
|#033[0m                      {'Elixir.UltronexApp',start,[normal,[]]}}
|#033[0m       in function  application_master:init/4 (application_master.erl, line 138)
|#033[0m     ancestors: [<0.1415.0>]
|#033[0m     message_queue_len: 1
|#033[0m     messages: [{'EXIT',<0.1417.0>,normal}]
|#033[0m     links: [<0.1415.0>,<0.1177.0>]
|#033[0m     dictionary: []
|#033[0m     trap_exit: true
|#033[0m     status: running
|#033[0m     heap_size: 376
|#033[0m     stack_size: 27
|#033[0m     reductions: 228
|#033[0m   neighbours:
|#033[0m

What is your OS and what does the command erl return for you?

It is failing on gen_statem, which is an Erlang feature. Maybe compare the Erlang version in 1.9.4 with 1.10.0, see if they are different and, if so, make sure you are using the same in your develpoment version and that the problem does not persist.

both 1.9.4-slim and 1.10.0-slim docker images use the same erlang:22-slim

1.9.4

1.10.0

Thanks for the follow-up. Can you reproduce the problem in your machine? If yes, can you isolate it locally so we can take a look at it?

***Erlang/OTP 22*** [erts-10.4] [source] [64-bit] [smp:6:6] [ds:6:6:10] [async-threads:1] [hipe]

Eshell V10.4 (abort with ^G)

1> q().

ok

2> [root@kyu-renu-stdportal1 ~]# cat /etc/centos-release

***CentOS Linux release 7.6.1810 (Core)***``

while I try 1.10.0 locally I stumbled upon this warning with 1.9.4, could this be of concern ?

These are Erlang warnings, not Elixir ones.

thats why I shared as crash was erlang related not elixir

seeing other weird crashes as well, maybe the dependencies are not ready for 1.10.0 hence the crashes

Oh, good find. Please open up a issue on the honeybadger library. Elixir v1.10.0 adds more logging metadata, which is a good thing, but those libraries are assuming that everything in the metadata can be converted to JSON - which was never true. :slight_smile:

3 Likes

It is the same problem as in this topic

All is about the fact that Jason.encode is not enough to encode logger metadata as specs define it as keyword() which mean that not all values will have defined protocol. 1.10 adds few default metadata, that are types not supported by default in Jason (PIDs and tuples). So it need to be fixed in LoggerJson, as this used wrong assumptions about data types in metadata.

2 Likes

Issue was reported and is already fixed. The Honeybadger library attempts to recursively escape into an encodable format, in this case it wasn’t handling functions.

1 Like