partial restart of epmd?
Kent Boortz
kent@REDACTED
Wed Jan 15 17:56:05 CET 2003
Ulf Wiger <etxuwig@REDACTED> writes:
> I have a machine where one node is running (and I don't want
> to touch it), and another node has crashed (but epmd still
> has the name).
>
> To make matters more interesting, one node runs OTP R9B, and
> the other ran OTP R7B.
>
> How do I resolve this without restarting epmd?
My guess it that you can write a small C program that uses the
erl_interface function erl_unpublish() to unregister the node name.
In the current implementation of the erl_interface library there is no
state kept between a erl_publish() and erl_unpublish() so this should
work.
You can also write a small erlang program that contact epmd with TCP
on port 4369 and that sends a packet, I think it should be something
like
Two bytes length of packet excluding these two bytes (big endian)
The byte 115 (ERL_EPMD_STOP_REQ)
The name to unregister (short name without @xxxxx part and no \0)
See "erl_ext_dist.txt", "epmd_srv.c" and "epmd_unpublish.c".
On Unix it should not be possible that epmd keeps the name after crash
of an Erlang node. If this is the case epmd is in a bad state caused
by a bug in epmd that we don't know of,
kent
More information about the erlang-questions
mailing list