On Jan 6, 2006, at 11:35 AM, Bhaskar, KS wrote:

Greg --

I am not sure I understand the problem.

Actually, I thought I was discussing possible scenarios, not to trying to describe a specific problem.

If the client does not shut
down "cleanly" there are two cases to consider:

(a) The server's TCP connection goes away.  This will cause the server
process to shut down cleanly.

How? is it closed? reset? or does it just time out? But in any case, the socket doesn't go away immediately. The specification says it needs to remain for 2 times the maximum lifetime of a packet. If you probe with netstat, you need to pay attention to the connection state, too.


(b) The server's side of the TCP connection somehow remains and doesn't
go away.

Actually, if the client simply closes the socket, this will not disturb the server. It's an example of normal behavior known as a "half open" connection.
In this case, with a dead client the server process remains,
occupying a slot in the process table, and few square millibleems on
disk to where its memory gets paged, where it stays until the computer
gets shut down or it gets purged.

What happens depends on the protocol and the server state. A problem can occur if the server has data to send but there is no client to acknowledge it (at the TCP level). this triggers a series of retries with a shrinking window. The problem is that a lot of things could be happening here: Is it just a latency problem? Are packets being dropped intermittently? Are they too large? Are acknowledgments being sent but lost? Usually, you don't have to worry about these things, but since TCP is designed to be reliable, an abrupt failure can trigger a lot of unnecessary work at the level of the TCP stack.

So, implementing via [x]inetd and TCP would seem to be just fine.

First of all, I recommend using inetd or xinetd (and, to tell you the truth, I'm more familiar with inetd). It was certainly not my intention to suggest otherwise. Second, i did not mean to suggest that TCP would not work, only that it made more sense to implement RPCs in a LAN environment using UDP. I also meant to call attention to the actual sequence of events as an aid in troubleshooting, not to suggest that the existing implementation was incorrect.

-- Bhaskar

===
Gregory Woodhouse
[EMAIL PROTECTED]

"Good acts are like good poems. One may easily get their drift, but they are not rationally understood."
--Albert Einstein





-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Hardhats-members mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hardhats-members

Reply via email to