Re: [squid-users] Processing entire objects before callback to client-side

From: Henrik Nordstrom <henrik@dont-contact.us>
Date: Fri, 09 Jun 2006 02:48:41 +0200

Discussion moved to squid-dev where it fits better..

tor 2006-06-08 klockan 17:04 -0400 skrev Rich Maring:
> We are trying to find a place in the Squid2.5STABLE14 code that would allow
> us to act on, and process, a complete file received by Squid prior to the
> client receiving the information. We thought that turning storebuffer() on,
> in the httpReadReply function in http.c, would allow the storeentry to
> accumulate the received data without sending a callback to the client side.
> In theory we could then process the storeentry buffer and when finished with
> it, send it on to the client side as usual.
>
> However, with storebuffer() set as above, it seems as though a buffer is
> being overrun, or a socket is being trashed, as we receive only part of the
> data before hanging. This seems to occur only on sites with larger objects.
> The following is from our logfile and shows a transition from (comm_select:
> 1+0 FDS ready) to (comm_select: 0+0 FDs ready) after the 0+0 the log goes
> into a huge loop of the eventRun: RUN ID process (effectively hanging).

Most likely is nothing as catastropic but simply that the server
connection is getting throttled waiting for some client to drain data
from the StoreEntry before Squid continues fetching data..

See fwdCheckDeferRead(). Should perhaps be extended with a check for
buffered store entries as well...

Regards
Henrik

Received on Thu Jun 08 2006 - 18:48:50 MDT

This archive was generated by hypermail pre-2.1.9 : Sat Jul 01 2006 - 12:00:01 MDT