From: Amos Jeffries Date: Sat, 1 Aug 2015 02:22:12 +0000 (-0700) Subject: Fix 'large transactions are getting stuck' since rev.14093 X-Git-Tag: merge-candidate-3-v1~10^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=691ad0955198819275233e7663f7d54f31bfd3e5;p=thirdparty%2Fsquid.git Fix 'large transactions are getting stuck' since rev.14093 Packer removal of packerClean() also removed several implicit uses of StoreEntry::flush() without adding an explicit call in their place. All users of StoreEntry::buffer() must follow it with a call to StoreEntry:flush() to release the buffering and output the buffer contents. --- diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc index bc60ec3600..2388ac1c13 100644 --- a/src/HttpRequest.cc +++ b/src/HttpRequest.cc @@ -359,6 +359,7 @@ HttpRequest::swapOut(StoreEntry * e) assert(e); e->buffer(); pack(e); + e->flush(); } /* packs request-line and headers, appends terminator */ diff --git a/src/store.cc b/src/store.cc index 55a54f4d05..55e54e7e36 100644 --- a/src/store.cc +++ b/src/store.cc @@ -1918,7 +1918,7 @@ StoreEntry::replaceHttpReply(HttpReply *rep, bool andStartWriting) void StoreEntry::startWriting() { - /* TODO: when we store headers serparately remove the header portion */ + /* TODO: when we store headers separately remove the header portion */ /* TODO: mark the length of the headers ? */ /* We ONLY want the headers */ @@ -1934,6 +1934,7 @@ StoreEntry::startWriting() EBIT_CLR(flags, ENTRY_FWD_HDR_WAIT); rep->body.packInto(this); + flush(); } char const *