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