Broken Pipe

Hi All.

I'm passing to the Library more and more requests as the need arises from an
asynchronous source, and I sometimes delete Anchors
bound to Requests (due to memory occupation issues) as no request is being serviced by the library at a given point in time.
In addition, I have to say (if it can somehow help you to understand my
problem), I'm using a Jen Megger's patch of HTHost.c module to be able to
open more then one socket connection to the same host.

Unfortunately sometimes my application gets a 'Broken Pipe' signal (that we properly handle, to avoid process termination) and it seems that some requests (maybe the ones submitted through the socket where we got the broken pipe) never reach their final state (responses never arrive, net_terminate handler is never been called again...and so on).
The HTNet_count() function does not return a value of zero anymore, and I cannot be sure that no request are on the fly at a given point in time [so I am not able to safely clear the Anchor table anymore].
I can see that the Library handles errors like this (writing to  an already closed socket?!?), due to a contribute by Olga Antropova & C., but, I think something goes wrong with the recovery, and so we loose those requests.
Nevertheless, such an error doesn't occur any time we get a 'Broken Pipe'.
Thus I have thought it may be related with the STATE the protocol module is in when the signal arrives.
Maybe if the 'send' to the socket has already been done at that point in time, the responses to all the pipelined requests get lost, otherwise evrithing is OK.
Am I missing something?...I hope so.

P.S.Why should a web server shutdown a connection while we are writing to it?

Tips are welcome.
Thanks in advance.



Cesare Pietra
Mobile Applications Area
NETikos S.p.A.
Via Matteucci 34/B
56124 PISA
Tel.: + 39 050 968526
Fax: + 39 050 968525
e-mail:  cesare.pietra@netikos.com
Internet: www.netikos.com

Received on Monday, 29 October 2001 10:30:57 UTC