distillery icon indicating copy to clipboard operation
distillery copied to clipboard

Can't ping or access remote_console after updating Erlang and Elixir

Open Pedneri1 opened this issue 4 years ago • 1 comments

Steps to reproduce and Description of issue

Hello! I’m having trouble accessing the remote_console after updating Elixir and Erlang on my build server. Everything starts up normally using the command my_app/bin/my_app foreground but when I try to run my_app/bin/my_app remote_console the application crashes and these errors appear:

1- On the console I ran foreground

19:44:23.509 [error] GenServer :net_kernel terminating
** (stop) bad return value: {:EXIT, {:undef, [{:erts_internal, :abort_connection, [:"[email protected]", {1, #Reference<0.321614115.3871473665.124992>}], []}]}}
Last message: {:EXIT, #PID<0.4889.0>, {:badarg, [{:erlang, :setnode, [:"[email protected]", #Port<0.68>, {31424444, 5, :"", :""}], []}]}}
{"Kernel pid terminated",application_controller,"{application_terminated,kernel,shutdown}"}
Kernel pid terminated (application_controller) ({application_terminated,kernel,shutdown})

2- On the other console that I ran remote_console or ping

** (exit) exited in: :gen_server.call(:net_kernel, {:connect, :hidden, :"[email protected]"}, :infinity)
    ** (EXIT) bad return value: {:EXIT, {:undef, [{:erts_internal, :abort_connection, [:"[email protected]", {1, #Reference<0.2859229408.4140957697.178983>}], []}, {:net_kernel, :pending_nodedown, 4, [file: 'net_kernel.erl', line: 980]}, {:net_kernel, :conn_own_exit, 3, [file: 'net_kernel.erl', line: 907]}, {:net_kernel, :do_handle_exit, 3, [file: 'net_kernel.erl', line: 875]}, {:net_kernel, :handle_exit, 3, [file: 'net_kernel.erl', line: 870]}, {:gen_server, :try_dispatch, 4, [file: 'gen_server.erl', line: 637]}, {:gen_server, :handle_msg, 6, [file: 'gen_server.erl', line: 711]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 249]}]}}
    (stdlib) gen_server.erl:223: :gen_server.call/3
    lib/distillery/releases/runtime/control.ex:1006: Distillery.Releases.Runtime.Control.hidden_connect/1
    lib/distillery/releases/runtime/control.ex:438: Distillery.Releases.Runtime.Control.ping/2
    lib/entry.ex:47: Distillery.Releases.Runtime.Control.main/1
    (stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
    (elixir) lib/code.ex:240: Code.eval_string/3 

Note: The same happens when running using my_app/bin/my_app start

elixir --version on build Server: Elixir 1.10.4 Erlang/OTP 23

elixir --version on execution Server: Elixir 1.10.4 Erlang/OTP 23

Distillery is running on version 2.1 and Edeliver on 1.7

The OS is Ubuntu 18.4 on both build and execution servers

Pedneri1 avatar Oct 05 '20 21:10 Pedneri1

Looks like you're not including the system (ERTS or BEAM) into the build, so when you're updating the ERTS system (Erlang) it's disappearing without telling the previous system to upgrade to the new one. My advice, include always the system into a release to avoid this. Usually, into the rel/config.exs you should have:

environment :prod do
  set include_erts: true
  ...

If you are building using the dev environment that could be the reason because it's not working. Try building with this:

MIX_ENV=prod mix distillery.release

manuel-rubio avatar Nov 29 '20 23:11 manuel-rubio