logfile helper going non-blocking

From: Lucas Brasilino <brasilino@dont-contact.us>
Date: Tue, 22 Nov 2005 09:54:17 -0400

Hi

I'm looking around Andrey's squid 2.5 patch posted here:

http://www.squid-cache.org/mail-archive/squid-dev/200509/0020.html

And I'm trying to accomplish Henkik's comments, so I'd like some
directions...

> There is some areas where this can be improved however.

> 1. The writes to the pipe should be non-blocking to avoid halting
> Squid if the script can not keep up.

So this mean that pipe's fd should be pushed into fd_set writefds
at comm_select.c checking it's writeness and calling FD_WRITE_METHOD(),
right? I didn't get into comm_select() related code already.
Another issue is how to deal with SIGPIPE... looks like that is
registered pipe_handler() in client.c which throughs an message to
stderr. Should I re-register it to log with debug() that's there's no
reader from the pipe?

> 2. To deal with the pipe being non-blocking you need buffering of the
> log writes. And a (perhaps configurable) limit of how much log data
> can be buffered.

Well, may 8K as default be ok?

> And then the obvious but less fun, for these changes to make it into
> the main Squid code tree it needs to be made within the Squid-3 tree.
> Squid-2.5 is feature frozen since many years back..

Although I'm using 2.5 to implement it, if it's successful I'll try to
port to Squid3 (if it's build get more stable, as Serassio pointed out),
but I'm not so good with C++ :).

-- 
[]'s
Lucas Brasilino
brasilino@prrr.mpf.gov.br
Procuradoria da República no Estado de Roraima
+55-95-6239642
Received on Tue Nov 22 2005 - 06:48:11 MST

This archive was generated by hypermail pre-2.1.9 : Thu Dec 01 2005 - 12:00:15 MST