[erlang-questions] monitor and failure detectors
Tue Jun 8 09:58:28 CEST 2010
One might want it to be more than the "current behaviour" :-)
To exemplify how this question lacks a precise answer one can read this in
the Reference Manual:
"Message sending is asynchronous and safe, the message is guaranteed to
eventually reach the recipient, provided that the recipient exists."
In the manual for erlang:monitor/2 we are only told that down messages
will be sent:
"A 'DOWN' message will be sent to the monitoring process if Item dies, if
Item does not exist, or if the connection is lost to the node which Item
In the description by Barklund and Virdning it is stated that:
"It is ensured that whenever possible, a signal dispatched to a process
should eventually arrive at it."
In the "Pitfalls and Recipes" we have:
"If two messages m1 and m2 are sent, in order, from a process Q to a
process P, and Q is linked (or monitors) to P, and no exit message from P
is received at Q, then it is guaranteed that the message have been
delivered, in order, at P."
Which is the opposit of what I propose.
It could well be that it is the "current behaviour" but is it defined by
On Tue, 08 Jun 2010 03:00:26 +0200, Scott Lystig Fritchie
> Johan Montelius <> wrote:
> jw> If a sequence of messages is potentially lost from A to B and B is
> jw> monitoring A the B will receive a DOWN-noconnection message. The
> jw> DOWN message is delivered to B after the last message that was
> jw> reliably delivered and before any message sent after the potentially
> jw> lost sequence of messages.
> IIRC, that's the current behavior, described in "Programming Distributed
> Erlang Applications: Pitfalls and Recipes" by H. Nilsson &
> L-Ã. Fredlund, ACM Erlang Workshop, 2007.
Associate Professor Johan Montelius
Royal Institute of Technology - KTH
School of Information and Communication Technology - ICT
More information about the erlang-questions