Resource Sharing Between production and test environment
Per Bergqvist
per@REDACTED
Fri Aug 1 00:13:58 CEST 2003
global use gen_server:multi_call/3 to set_lock on all connected
nodes. note that this is with infinite timeout.
each individual call per node will however be aborted if the
node goes down and set_lock may be restarted.
the worst thing that can happen to an erlang node is that the
beam scheduler stops scheduling. the tcp/ip connection will still
appear to be up but it will obviously not respond to requests.
depending on how you set the kernel ping this may lead to a
long time before a node down event is delivered.
this would happen if you for example hit a break point in gdb if
you are debugging the evm. an even easier way to get the same
result is to suspend (^Z) a node run interactively.
this will effect mnesia and any distributed application (i.e. using
dist_ac).
/Per
-------------------
> Per Bergqvist <per@REDACTED> writes:
>
> > You should absolutely not attempt to solve the problem with
> > distributed erlang since it may potentially severely impact the
> > production system. (e.g. gdb debugging a node in the test system
> > could potentially stall global locking on all other connected
> > nodes.)
>
> Could you explain a little more what might cause global locking to
> stall, and what parts of OTP are affected?
>
> You don't need gdb to take a node offline at an inopportune moment.
> :-0
>
=========================================================
Per Bergqvist
Synapse Systems AB
Phone: +46 709 686 685
Email: per@REDACTED
More information about the erlang-questions
mailing list