<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><br>I am trying to debug a scenario wherein a program has an http channel socket that receives an HTTP response; and in some cases (5 out of 10,000) the channel/transport invokes the lost connection callback while the amount of data received is less than the content length.&nbsp; The connection is used as a producer to write to another connection.<br><br>I am trying to debug to check whether:<br>(1) the last chunk (20K+) of data sitting in the incoming response is not being propagated up, e.g. due to a prior pauseProducing() call, or <br><br>(2) the data was not sent from the peer (e.g. connection closed without using so_linger)<br><br>In general, I "presume" lost connection callback on a producer socket would not be called if there is pending (paused) data that has yet to be written a consumer (socket).&nbsp; I am also assuming that the assert in
 internet/abstract.py::resumeProducing() [self.connected and not self.disconnecting] is valid.&nbsp; I.E: It would be great someone can confirm that scenario (1) above is not possible in twisted (unless a bug).<br><br>By the time the lost connection callback is called, the transport channel is gone.&nbsp; I would have to instrument either tcp.py, basic.py, or abstract.py to track this.<br><br>If the bug is indeed scenario (2), then I will use wireshark (cause the client program has actually written the entire response to its end of the connection).<br><br>Any clues/suggestions welcome.<br><br>Thanks.<br>-Arun<br></td></tr></table>