scouten

scouten

Help me understand why `:net_kernel.start` fails

I’m experimenting with libcluster and starting by setting up a simple “first node” for said cluster.

Before I even get into libcluster, though, I’m having trouble starting distributed Erlang. This is the entirety of my so-far-very-simple application:

defmodule MyApp do
  @moduledoc false
  use Application

  def start(_type, _args) do
    IO.inspect(:erlang.node(), label: "node")

    IO.puts "starting self"
    IO.inspect(:net_kernel.start([:"my_hub@localhost"]), label: "nk start")

    topologies = [
      my_swarm: [
        strategy: Cluster.Strategy.Epmd,
        config: [hosts: [:"my_hub@localhost"]]
      ]
    ]

    children = [
      {Cluster.Supervisor, [topologies, [name: MyApp.ClusterSupervisor]]}
    ]

    Supervisor.start_link(children, strategy: :one_for_one, name: MyApp.Supervisor)
  end
end

And it fails in the following way:

$ mix run
Compiling 1 file (.ex)
node: :nonode@nohost
starting self

11:19:33.205 [info]  Protocol 'inet_tcp': register/listen error: econnrefused

nk start: {:error,
 {{:shutdown, {:failed_to_start_child, :net_kernel, {:EXIT, :nodistribution}}},
  {:child, :undefined, :net_sup_dynamic,
   {:erl_distribution, :start_link, [[:my_hub@localhost], false]}, :permanent,
   1000, :supervisor, [:erl_distribution]}}}

My Googling thus far has not yielded any results. What should I be looking for?

Most Liked

scouten

scouten

Interestingly, it appears that using a hostname other than localhost “resolves” the problem.

aseigo

aseigo

Is localhost resolvable to 127.0.0.1 on your system? Long-name nodes require the host to be resolvable and reachable …

Where Next?

Popular in Questions Top

nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
Lily
In templates/appointment/index.html.eex: <%= for appointment <- @appointments do %> <tr> <td><%= appoi...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
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
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

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
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
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New

We're in Beta

About us Mission Statement