Uno de los gen_servers en mi aplicación llame al gen_tcp:listen(Port, [{active, true}]). La primera vez que corro prueba de unidad, devuelve {OK, Socket}, pero la segunda vez que ejecute la misma prueba de la unidad, se devuelve un error {,} EADDRINUSE, peroque usa un puerto TCP?
lsof -i TCP
vuelve nada. Además, cuando el mismo unit_test se ejecuta dos veces en otra máquina (WinXP), funciona según lo esperado (es decir, devuelve {ok, Socket} las dos veces). Por lo tanto, mi gen_server obviamente libera el puerto, pero Erlang de alguna manera no lo sabe.
Entonces, ¿cómo puedo saber quién cree que Erlang usa esta dirección?
Usted puede utilizar el indicador REUSEADDR a gen_tcp: escuchar para que este comportamiento en Linux desaparezca. – Lukas