Sam Lang wrote:
On Oct 9, 2007, at 8:02 AM, Scott Atchley wrote:
On Oct 8, 2007, at 3:56 PM, Sam Lang wrote:
The patch implements a complementary callback function:
bmi_method_addr_forget_callback, to be called by the individual
methods when the connection is closed or the address is removed from
the method's own management structures. In the case of tcp, a
connection is closed when poll or epoll returns an IN event on a
socket (through testcontext) and the following read returns zero
(EOF). Its at this point the method now (with my patch) calls
bmi_method_addr_forget_callback to remove the address reference from
the list.
I think it is stretching a bit for the server's BMI method to make an
assumption about the fate of a client due to a loss of communication.
The loss could be permanent or a re-connect attempt may already be
initiated.
Its not a loss of communication. When the client closes its socket, a 0
byte message is sent to the server. Reading that zero byte message is
how the server knows the client is requesting the connection gets closed.
Same thing happens when a client dies. That's just the way sockets let
an app know that a socket has been closed. You can't tell the difference
between an app dying and an app closing a socket, unless I'm remembering
incorrectly.
Rob
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers