<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 27-08-2012 10:16, Paul Guyot wrote:<br>
</div>
<blockquote
cite="mid:A13D30B6-92A2-4B5A-A078-595876460F5A@kallisys.net"
type="cite">
<blockquote type="cite">
<pre wrap="">It would be great if there was a way of simply figuring out the file
descriptor numbers used for EPMD and/or heart from the C code. Then it
would be easy to fix this. One possibility is to add a new BIF that
stores the current EPMD port in a C variable. Then the loop that closes
all ports could be replaced with a single close.
</pre>
</blockquote>
<pre wrap="">
I would like to strongly argue against a selected close of the epmd port.
The main argument is that it singles out the node name as the only exclusive resource a node can have.</pre>
</blockquote>
I was thinking the same thing, but about listening sockets.<br>
It'd probably make better sense to make the heart FD be the special
case, like stdin/out/err are already.<br>
<br>
Alternatively, could the node communicate to heart that it is
dumping, so that heart can leave it be (at least for a while)? That
would of course also make the FD special, so probably no gain.<br>
<br>
Is kill-on-close the right behaviour for heart? The "if the
connection to Erlang breaks, it assumes the Beam process has gone
bad" reaction, is it justified? That could be changed to "if the
connection breaks, then assume - at least for a while - that the
Beam process is going down." If, after a timeout after the
connection disappeared, the Beam process is still around (or,
possibly, that heart observes no growth in the dump file... don't
know if that's too much complexity), *then* go assume badness and go
for the kill. For great justice.<br>
<br>
2¢<br>
/Erik<br>
<br>
<blockquote
cite="mid:A13D30B6-92A2-4B5A-A078-595876460F5A@kallisys.net"
type="cite">
<pre wrap=""> Other resources cannot be shared between incarnations of the same node. For example, a node may open a pool of N connections to a database server which could be limited, by configuration, to a total count of M connections where M < 2 * N.
Paul
</pre>
</blockquote>
<br>
<br>
<div class="moz-signature">-- <br>
<div style="color: black; text-align: center;"> <span>Mobile: +
45 26 36 17 55</span> <span> </span> <span style="color:
black; ">| Skype: eriksoesorensen</span> <span> </span> <span
style="color: black; ">| Twitter: @eriksoe</span>
</div>
<div style="text-align: center; color: gray;"> <span>Trifork A/S
| Margrethepladsen 4 | DK-8000 Aarhus C | </span> <a
href="http://www.trifork.com/"><span style="text-decoration:
underline; color: gray;">www.trifork.com</span></a>
</div>
</div>
</body>
</html>