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

Reply via email to