[erlang-questions] crash dump at ejabberd startup
tom@REDACTED
tom@REDACTED
Fri Nov 19 00:59:02 CET 2010
Hello Michael,
> I've attached a patch that disables the check.
You're an angel, many thanks ! :-)
> I'll put together a better patch later. I can see a few ways of doing
> this:
>
> 1. have a configurable source IP address as you suggested
>
> 2. checking the source IP is the same as the destination IP
>
> 3. checking the connection came over the loopback interface (probably no
> portable way to do this)
>
> 4. have an option to disable the check (the old behaviour)
>
> Aside from jails, I'm not sure anyone else would be affected by this. So
> maybe option 4 is the way to go.
Regarding FreeBSD's Jail virtualizatioin:
Well, this is a grown sort of software virtualization which first appeared
several years ago (probably long before the current Linux virtualization
technologies popped up). Also, there's steady work to improve it's
capabilities.
However it's a pretty solid thing and worth supporting it as there are huge
amounts of people and companies (such as Yahoo) outside there using it to
propperly isolate different services running on a host. And for countless
further purposes. May be you also just want to honor the good and old and
true and "real" Unix: BSD ;-)
I agree that your option #4 was good on the short run. As I don't know
enough about other virtualization technologies outside the BSD world I just
could guess that your option #1 or #2 might be best on the longer run. Also,
I don't know for what purpose the Erlang community built in the check. There
might have been good reasons to do so of course.
Ok, I'll try to apply your patch now but also will contact the Port
maintainer from the FreeBSD universe to keep him posted.
Will CC you on this.
Many thanks again !
kind regards
Tom
> diff --git a/erts/epmd/src/epmd_srv.c b/erts/epmd/src/epmd_srv.c
> index ef471a4..e2cc2dc 100644
> --- a/erts/epmd/src/epmd_srv.c
> +++ b/erts/epmd/src/epmd_srv.c
> @@ -766,6 +766,9 @@ static int conn_open(EpmdVars *g,int fd)
> dbg_tty_printf(g,2,(s->local_peer) ? "Local peer connected" :
> "Non-local peer connected");
>
> + /* XXX allow local messages from all clients */
> + s->local_peer = EPMD_TRUE;
> +
> s->want = 0; /* Currently unknown */
> s->got = 0;
> s->mod_time = current_time(g); /* Note activity */
More information about the erlang-questions
mailing list