--------------------- PatchSet 4745 Date: 2007/06/18 23:14:30 Author: rousskov Branch: squid3-icap Tag: (none) Log: HttpStateData may get stuck if request body producer aborts while the request body is being sent. The code already had a related XXX comment. This change is meant to abort the server transaction when that happens, but I cannot reproduce the problem and, hence, is not sure the change is correct and sufficient. Members: src/http.cc:1.49.2.73->1.49.2.74 Index: squid3/src/http.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/http.cc,v retrieving revision 1.49.2.73 retrieving revision 1.49.2.74 diff -u -r1.49.2.73 -r1.49.2.74 --- squid3/src/http.cc 1 Jun 2007 21:34:29 -0000 1.49.2.73 +++ squid3/src/http.cc 18 Jun 2007 23:14:30 -0000 1.49.2.74 @@ -1,6 +1,6 @@ /* - * $Id: http.cc,v 1.49.2.73 2007/06/01 21:34:29 rousskov Exp $ + * $Id: http.cc,v 1.49.2.74 2007/06/18 23:14:30 rousskov Exp $ * * DEBUG: section 11 Hypertext Transfer Protocol (HTTP) * AUTHOR: Harvest Derived @@ -1900,8 +1900,8 @@ HttpStateData::handleRequestBodyProducerAborted() { ServerStateData::handleRequestBodyProducerAborted(); - // XXX: SendComplete(COMM_ERR_CLOSING) does little. Is it enough? SendComplete(fd, NULL, 0, COMM_ERR_CLOSING, 0, this); + abortTransaction("premature end of request body while sending"); } // called when we wrote request headers(!) or a part of the body