Docker container: Protocol 'inet_tcp': register/listen error: etimedout

Hello there,

I have a Virtual Machine with Docker and I have 1K containers. These containers runs an Erlang application with their corresponding node name. For instance:

erl -name client1@192.168.2.3 -setcookie “cookie_123456789” -noshell -s client main

The problem is that when I start all of these containers, some of them got stopped because the Erlang application couldn’t communicate with the epmd local process so this message is displayed:

NodeId: nonode@nohost,
Protocol ‘inet_tcp’: register/listen error: etimedout

Have you faced a problem like this? Do you have an idea how I can tackle this problem?

Hope you can help me.

Thanks in advance!.

1 Like

Are you starting them all at once? Probably epmd can’t handle that much connections at once. Can you try starting them one by one with some small delay in between, just to confirm the problem?

Hello, yes, I tried that but same result. The scenario is this:

  1. Every container holds an Erlang application.
  2. One of these container behave as a server while the others clients.
  3. When a client starts, it sends a message to a server to enroll their self on the server.
  4. In (3) some of these clients crashes because the Erlang process is unable to reach its local epmd process so the container is stopped with this message in the logs:

Protocol ‘inet_tcp’: register/listen error: etimedout

Moreover, in other containers i can see these messages:

=WARNING REPORT==== 29-Sep-2023::08:51:20.176633 ===
global: ‘client1@192.168.0.4’ failed to connect to ‘client34@192.168.0.37’

=ERROR REPORT==== 29-Sep-2023::08:52:33.546548 ===
** Node ‘client28@192.168.0.31’ not responding **
** Removing (timedout) connection **

Since clients need to send a message to the server, they need to know the server “name” to reach it so for now I set all clients name as “client@127.0.0.1” in this way it works but it is weird.

I don’t know if this is a problem of a missing Docker configuration or something I have to setup in the Docker network.

I figured out the problem. It was a hardware problem, the server could not handle this amount of processing.

Thanks.

1 Like