[erlang-questions] ei_connect fails sometimes with EIO
Michael Santos
michael.santos@REDACTED
Fri Nov 25 20:44:04 CET 2011
On Fri, Nov 25, 2011 at 04:43:23PM -0200, Andre Nathan wrote:
> Hello
>
> I have a C node doing RPC on my Erlang cluster. From time to time I get
> Input/Output errors from ei_connect.
>
> I've found this thread which reports something similar, but apparently
> no solution was found:
>
> http://erlang.org/pipermail/erlang-questions/2007-July/027711.html
>
> Since EIO is a kind of "generic error" in erl_interface, I was wondering
> if there is anything else I can do to try to find what's happening.
You could try running epmd in debug mode (epmd -d -d -d), if you can make
the error happen predictably. Or use tcpdump to dump the packets to epmd
(port 4369) and analyze it later.
> One thing that I thought could be the cause of the problem is that I'm
> running the Erlang cluster with inet_dist_listen_min =
> inet_dist_listen_max = 9100; while I've had no problems with the Erlang
> cluster itself, I figured that maybe I was limiting its ability to
> handle concurrent connections by using a single port. However, changing
> inet_dist_listen_max to 9110 didn't solve the problem, so I guess it's
> something else.
>
> Does anyone have any idea about this?
>
> Thanks,
> Andre
I had a similar problem with erl_call when node names clashed. I was
running erl_call from Nagios to do some service checks, so a few nodes
might be running at any time. Using "unique" names fixed it for me:
NODEID=$(($$ % 32))
RES=$($ERL_CALL -h n-${NODEID} -c $COOKIE -sname $NODE -a "$MODULE q [$ARG]" 2>&1)
If the modulus in NODEID was too low, I'd see eio errors. Originally,
I just used the process id for the name but the erlang node would crash,
I think because the atom table overflowed.
More information about the erlang-questions
mailing list